Linux - 使用文件提供命令输入并在命令运行时删除该文件

标签 linux background-process io-redirection

有人可以告诉我一个单行命令,从文件中提供 cmd 输入并在命令仍在运行时删除同一文件吗?

编辑:我所说的单行命令是指在一个命令中执行整个操作。这种行为与同时执行进程和命令有关。因此,我想看看当命令行输入输入文件并在同一命令中使用同时进程执行(读取前台和后台)的概念删除文件而 cmd 输入仍在读取文件时会发生什么

我试过了

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

显然我尝试的cmd是错误的。也许我需要运行其中一个命令作为后台作业,但我不确定

最佳答案

不确定您实际上想要实现什么;但是您的示例命令可以通过使用 xargs 以某种方式“修复”:

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

顺便说一句。如果您担心在使用文件时删除该文件:当进程正在使用文件(即保持打开状态)时,其内容将不会从磁盘中删除。即使用rm删除文件,也只是删除目录结构中的文件名;仅当文件不再被任何进程保持打开状态时,才会释放实际内容的磁盘空间。

关于Linux - 使用文件提供命令输入并在命令运行时删除该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338313/

相关文章:

unix - 管道查找命令 "stderr"到命令

php - Magento 不显示错误

linux - 在 bash 脚本中动态重定向标准输入

c - 两个不相关的进程如何知道相同的 key 来分配相同的共享内存

Android:执行后台操作的设计考虑

c - 如何启动在后台运行的进程?

background-process - BITS 仍然是一个很好的后台更新技术吗?

shell - 如何通过管道输出需要文件参数的命令

linux - Grepping 不适合特定给定字符集的字符

regex - 种子 | awk 在匹配下一行后删除行