V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Martin9
V2EX  ›  Linux

[linux] 如何批量复制文件名中有$符号的文件

  •  1
     
  •   Martin9 · 2016-05-11 17:02:17 +08:00 · 4765 次点击
    这是一个创建于 3120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个 file_list 文件,里面写了需要复制的文件名, 使用 while read line 会自动忽略$符号, 求助下各位,谢谢

    第 1 条附言  ·  2016-05-11 20:37:27 +08:00
    谢谢大家的帮忙,已送铜币表示感谢, 5 楼是我想要的答案
    第 2 条附言  ·  2016-05-12 09:03:58 +08:00
    诸位,不好意思又来求助大家。
    按照 5 楼的方法能在本地成功。
    然而因为 file_list 文件和需要复制的文件不在一个服务器上,所以 ssh 到文件所在的服务器上时, file_list 文件名中由于有$符号导致不能正确传输,
    请问有方法能解决么?
    第 3 条附言  ·  2016-05-12 09:12:23 +08:00


    代码如上,客户名和服务器名手动打码,应该没有影响
    11 条回复    2016-05-11 20:35:46 +08:00
    fish47
        1
    fish47  
       2016-05-11 17:10:04 +08:00   ❤️ 1
    用 xargs -d SEP 不就好了?再不行就用 python 呗。
    dixyes
        2
    dixyes  
       2016-05-11 17:12:34 +08:00 via Android   ❤️ 1
    木有转义?\$之类的?
    Martin9
        3
    Martin9  
    OP
       2016-05-11 17:15:09 +08:00
    @fish47 不能用 python,只能用 shell
    Martin9
        4
    Martin9  
    OP
       2016-05-11 17:16:29 +08:00
    @dixyes read line 的时候$line 这个变量读文件名的时候会忽略$,
    McContax
        6
    McContax  
       2016-05-11 17:38:15 +08:00 via Android
    shell 脚本即可
    ilotuo
        7
    ilotuo  
       2016-05-11 19:03:18 +08:00   ❤️ 1
    试下单引号
    其内部所有的 shell 元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。
    ilotuo
        8
    ilotuo  
       2016-05-11 19:04:04 +08:00
    ^_^[18:35:48]develop$ touch '$tetst'
    ^_^[19:06:27]develop$ ls '$tetst'
    $tetst
    ^_^[19:06:34]develop$ rm '$tetst'
    cxbig
        9
    cxbig  
       2016-05-11 19:54:47 +08:00   ❤️ 1
    转义\$

    整个文件名加引号
    Martin9
        10
    Martin9  
    OP
       2016-05-11 20:34:49 +08:00
    @SpicyCat 多谢
    Martin9
        11
    Martin9  
    OP
       2016-05-11 20:35:46 +08:00
    @cxbig 想批量做, 5 楼这样的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3292 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 12:50 · PVG 20:50 · LAX 04:50 · JFK 07:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.