【发布时间】:2016-07-04 21:45:31
【问题描述】:
我想将当前目录中的所有文件复制到一个新的子目录中。这个unix命令是什么?
【问题讨论】:
标签: shell unix command-line terminal
我想将当前目录中的所有文件复制到一个新的子目录中。这个unix命令是什么?
【问题讨论】:
标签: shell unix command-line terminal
您可以使用cp -R 命令。使用-R 标记它递归地复制目录。
例如:
cp -R directory1/ directory2/
将整个directory1 复制到directory2。
【讨论】:
cp -R * directory2/ 不起作用。
cp -R . directory2/
要复制所有“文件”,您需要排除其他子目录的副本。你可以用一个短循环和复合命令来做到这一点,例如
for i in *; do [ -f "$i" ] && cp -a "$i" directoryname; done
有几种方法可以做到这一点。让我知道这是否会给您带来任何麻烦。
由于您是 shell 编程的新手,compound-command 只是两个命令(或更多)与&&(这意味着如果第一个成功则执行第二个)和@ 987654323@(这意味着只有在第一个失败时才执行第二个)。所以在上面,循环只是做了以下事情:
for i in *; do # for each linux-file in dir
[ -f "$i" ] && cp -a "$i" directoryname # test if plain file && copy
done
【讨论】:
:)
替换子目录名:
$cp -R * 子目录名/
【讨论】: