Bash

如何 cp 只進入最新的目錄名?

  • March 18, 2015
mkdir test_dir test_dir1 test_dir2 test_dir3
touch file1 file2 file3
cp -v file* test_dir*/

這僅複製到 test_dir3 而不是 test_dir、test_dir1、test_dir2。為什麼?

就此而言,它僅複製到最新目錄,例如 test_dir4,而不復製到任何其他目錄(它正在省略它們)。

你有這三個命令

mkdir test_dir test_dir1 test_dir2 test_dir3
touch file1 file2 file3
cp -v file* test_dir*/

假設.在範例開始之前沒有其他文件或目錄,則最後一行中的萬用字元將擴展為:

cp -v file1 file2 file3 test_dir/ test_dir1/ test_dir2/ test_dir3/

(您可以通過更改cpecho cp並觀察結果來看到這一點。)您沒有告訴我們的是由 生成的診斷消息cp -v,它顯示了它正在嘗試做什麼,即複製命令行上的每個項目,但最後一個到最後一項,因此它必須是一個目錄:

‘file1’ -> ‘test_dir3/file1’
‘file2’ -> ‘test_dir3/file2’
‘file3’ -> ‘test_dir3/file3’
cp: omitting directory ‘test_dir/’
cp: omitting directory ‘test_dir1/’
cp: omitting directory ‘test_dir2/’

引用自:https://serverfault.com/questions/676351