Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux命令行组合文件_Linux_Command Line_Cat_Ls - Fatal编程技术网

Linux命令行组合文件

Linux命令行组合文件,linux,command-line,cat,ls,Linux,Command Line,Cat,Ls,对于这样的命令 ls -rt | tail -n 100 将提供最新修改的100个文件。应该使用什么命令行工具将此查询的结果传递到,以便将显示的所有文件名复制到单个文件中。例如: 如果一个文件夹有100个文件,上面的命令将给出所有文件名。我想将所有文件中的所有数据复制到一个101文件中。我该怎么做 命令行猫每个文件的目的地是什么,我正在寻找。但是我不知道从哪里开始。ls-rt | tail-n100 | xargs cat>文件 xargs命令从其标准输入流中重复读取文本,使用该文本构造命令

对于这样的命令

ls -rt | tail -n 100 
将提供最新修改的100个文件。应该使用什么命令行工具将此查询的结果传递到,以便将显示的所有文件名复制到单个文件中。例如:

如果一个文件夹有100个文件,上面的命令将给出所有文件名。我想将所有文件中的所有数据复制到一个101文件中。我该怎么做

命令行猫每个文件的目的地是什么,我正在寻找。但是我不知道从哪里开始。

ls-rt | tail-n100 | xargs cat>文件

xargs命令从其标准输入流中重复读取文本,使用该文本构造命令行,然后执行命令行

xags cat意味着它将每一行输入文本视为一个单独的参数,并使用每一行输入作为cat命令的参数来构造cat命令。它将构造尽可能长的命令行,因此它将分叉最少数量的cat进程

因此,cat进程读取您感兴趣的文件,并将其内容按顺序写入标准输出流

>文件将该文本放入结果文件中

ls-rt | tail-n100 | xargs cat>文件

xargs命令从其标准输入流中重复读取文本,使用该文本构造命令行,然后执行命令行

xags cat意味着它将每一行输入文本视为一个单独的参数,并使用每一行输入作为cat命令的参数来构造cat命令。它将构造尽可能长的命令行,因此它将分叉最少数量的cat进程

因此,cat进程读取您感兴趣的文件,并将其内容按顺序写入标准输出流

>文件将该文本放入结果文件中


我发现这很简单:

cat `ls -rt | tail -n 100` > singleFile

我发现这很简单:

cat `ls -rt | tail -n 100` > singleFile

如果文件名中有空格,我建议使用GNU find:

find . -maxdepth 1 -type f -printf '%Ts %p\n' \
| sort -nr       \
| head -n100     \
| cut -d' ' -f2- \
| tr '\n' '\0'   \
| xargs -0 cat > outfile
要查找的printf参数在路径名前插入最后一次修改时间(以秒为单位),路径名按降序排序,head获取前100个文件,cut删除修改时间戳,tr zero分隔文件列表,xargs将文件名正确传递给cat


请注意,如果文件名中有换行符,这将不起作用。

如果文件名中有空格,我建议使用GNU查找:

find . -maxdepth 1 -type f -printf '%Ts %p\n' \
| sort -nr       \
| head -n100     \
| cut -d' ' -f2- \
| tr '\n' '\0'   \
| xargs -0 cat > outfile
要查找的printf参数在路径名前插入最后一次修改时间(以秒为单位),路径名按降序排序,head获取前100个文件,cut删除修改时间戳,tr zero分隔文件列表,xargs将文件名正确传递给cat


请注意,如果文件名中有换行符,则此操作不起作用。

对于包含空格的文件名,请使用换行符。对于包含空格的文件名,请使用换行符,等等。