Bash
如何 cp 只進入最新的目錄名?
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/
(您可以通過更改
cp
為echo 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/’