我想將ls的輸出放入head並將其管入mv。用xargs移動文件
我在終端上使用了下面的命令,但它不能正常工作。
ls -t Downloads/ | head -7 | xargs -i mv {} ~/cso/
請糾正錯誤。提前致謝!
我想將ls的輸出放入head並將其管入mv。用xargs移動文件
我在終端上使用了下面的命令,但它不能正常工作。
ls -t Downloads/ | head -7 | xargs -i mv {} ~/cso/
請糾正錯誤。提前致謝!
使用-I喜歡這裏:
ls -t Downloads/* | head -7 | xargs -I '{}' mv '{}' ~/cso/
它不工作。 輸出如下: MV:不能STAT 'SingleCycleCPUDesign.pdf':沒有這樣的文件或目錄 MV:不能STAT 'MIPS-assembly.tar':沒有這樣的文件或目錄 MV:不能STAT「MIPS_Vol2。 pdf':沒有這樣的文件或目錄 mv:can stat'MIPS_Vol1.pdf':沒有這樣的文件或目錄 mv:can stat'MIPS32_QRC.pdf':沒有這樣的文件或目錄 mv:can stat'MIPS-Assembly。 ppt':沒有這樣的文件或目錄 mv:不能統計'L06-SMIPS.pdf':沒有這樣的文件或目錄 – blazingeagle
在剛纔編輯的'Downloads /'後添加*。如果它回答您的查詢,請將其標記爲答案。 –
現在工作得很好。非常感謝@Exception_al – blazingeagle
這是有據可查的解析ls
輸出不推薦。您可以使用這種安全方法使用find + sort + cut + head + xargs
管道:
find . -maxdepth 1 -type f -printf '%[email protected]\t%p\0' |
sort -z -rnk1 |
cut -z -f2 |
head -z -n 7 |
xargs -0 -I {} mv {} ~/cso/
爲什麼它不能正常工作?什麼是預期的和實際的結果是什麼? –
這是一個糟糕的任務。你不應該把'ls'的輸出傳送給任何*,除了可能是'less'這樣的尋呼機。 – chepner
另外,'ls'輸出的第一行不是文件名。 – chepner