【问题标题】:Need to move 500 specific files from one share directory to another需要将 500 个特定文件从一个共享目录移动到另一个共享目录
【发布时间】:2020-01-07 11:55:56
【问题描述】:

我有一个包含 50,000 个文件的目录;我只需要移动文本文件中的这些文件的子集。我正在寻找将这些文件移出的脚本/方法。

我一直在寻找有关如何移动所有文件的项目,但这对我不起作用。

【问题讨论】:

    标签: bash cp mv


    【解决方案1】:

    您可以使用mv 命令。在以下示例中,我将 list.txt 中的条目从旧目录移动到新目录。

    $ mkdir old new
    $ touch old/{a,b,c}.{sh,c,txt}
    $ echo "a.sh
    c.txt
    b.c" > list.txt
    $ cd old/
    $ mv $(cat ../list.txt) ../new
    $ find ../new/
    ../new/
    ../new/a.sh
    ../new/c.txt
    ../new/b.c
    

    【讨论】:

      【解决方案2】:

      假设你有 GNU coreutils,你可以使用

      xargs -a tomove.txt -d '\n' mv -t /path/to/destination
      

      其中tomove.txt 包含要移动的文件的名称,每行一个。 -d '\n' 确保使用换行符(而不是任何空白)作为文件名分隔符来正确解释其中包含空格的文件名。

      xargs 保证我们不会遇到命令行长度限制。

      【讨论】:

      • 感谢您在我尝试运行此程序时的快速响应我得到以下 mv: cannot stat â_Experienceâ: No such file or directory
      • @Jack 我已经更新了答案,你的文件名可能包含空格——现在应该修复了。
      猜你喜欢
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2013-06-27
      • 2019-09-26
      相关资源
      最近更新 更多