2013-03-11 80 views
-1

有人可以告訴我一個命令行來從文件中提供我的cmd輸入,並在命令仍在運行時刪除相同的文件嗎?Linux - 在命令運行時提供帶有文件的命令輸入並刪除文件

編輯:通過單行命令我的意思是,在一個命令中執行這整個動作。這一行爲與同時執行進程和命令有關。因此,我希望看到當命令行輸入被一個文件提供並且在同一命令中使用同時進程執行的概念(讀取前景和背景)時,會發生什麼情況,而cmd輸入仍在讀取時刪除文件。

我試過

$ cat dummy_file.txt | rm -i 
rm: missing operand 
Try rm --help for more information 

顯然我試過的cmd是錯的。也許我需要運行其中一個命令作爲後臺作業,但我不確定

+1

定義'單行命令'。由於* nix shell允許你在一行上有多個命令,用';'分隔,''單行命令'可以做任何事情。 – KevinDTimm 2013-03-11 12:18:29

+1

您想要讀取文件的內容並將其刪除?你的命令是什麼?你有什麼嘗試?請編輯並更新您的問題。 – 2013-03-11 12:18:35

回答

0

不知道你實際上想要達到什麼目的;但你的示例命令可以通過使用xargs的方式「固定」:

echo "dummy_file.txt" > dummy_file.txt 
cat dummy_file.txt | xargs rm -i 

Btw。如果您擔心在使用文件時刪除文件:當文件正在使用(即保持打開狀態)時,它的內容將不會從磁盤中刪除。即使您使用rm刪除文件,也只刪除目錄結構中的文件名;實際內容的磁盤空間僅在文件不再由任何進程保持打開時才被釋放。

+0

是的,這就是我要找的。在通過cmd-line讀取文件的同時刪除該文件。我嘗試了'cat dummy_file.txt&rm dummy_file.txt',這也起作用。基本上貓不能完成因爲它找不到在'cat'仍在運行時被刪除的文件。感謝您的額外信息。 – ivn03 2013-03-12 03:31:15