一位同事向我展示了一種使用rm和xargs刪除.txt中列出的文件名的好方法 - 但我不記得他做了什麼。如何用xargs -a正確地形成rm?
我跑
echo | xargs -a file.txt
file.txt的地方包含
1
2
3
4
而且它印
1 2 3 4
我的邏輯說,
rm | xargs -a file.txt
應刪除我創建的標題爲1和2以及3和4的文件。
但這不是我得到的行爲。
如何組成這個簡單的命令?
一位同事向我展示了一種使用rm和xargs刪除.txt中列出的文件名的好方法 - 但我不記得他做了什麼。如何用xargs -a正確地形成rm?
我跑
echo | xargs -a file.txt
file.txt的地方包含
1
2
3
4
而且它印
1 2 3 4
我的邏輯說,
rm | xargs -a file.txt
應刪除我創建的標題爲1和2以及3和4的文件。
但這不是我得到的行爲。
如何組成這個簡單的命令?
除非file.txt的是真正的大,xargs的是不必要的,這相當於:
rm $(<file.txt)
和便攜式(POSIX)了。
+1我喜歡你的答案,不需要xargs。請注意,如果文件名包含空格,則此解決方案將不起作用。另一方面,'xargs -I'{}'rm'{}'
試試這個命令: xargs rm < file.txt
xargs的採取一切LINE IN輸入,並將它添加到您指定的命令。 所以如果file.txt的包含:
a
b
然後xargs的將執行rm a b
第一個作品是因爲如果你不提供'xargs'命令,它默認爲'echo'。管道之前的「回聲」無關緊要。 – Barmar