2013-03-11 79 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