Linux怎么将一个文件后五行内容转存到其他目录下?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux怎么将一个文件后五行内容转存到其他目录下?相关的知识,希望对你有一定的参考价值。

新手

使用tail命令,默认输出最后文件最后10行内容,可以加参数n;然后使用重定向,写入到一个新文件中。

示例:把当前目录下的file1的后5行,输出到tmp目录下的file2。

tail -n 5 file1 > /tmp/file2

参考技术A tail -5 file.txt >> dir_file/new_files.txt
《Linux就该这么学》是一本注重于实用性的Linux系统技术自学书籍,一起学习。

linux下如何将当前目录的文件名存到一个文本文件里

ls *.gz > 1.txt
出错
bash: /bin/ls: Argument list too long

需要准备的材料分别是:电脑、linux连接工具。

1、首先连接上linux主机,进入到需要处理的目录,例如“/”目录。

2、输入:ls -1 > 1.txt,按回车。

3、此时通过ls命令发现“1.txt”文件被生成的。

4、用vi命令打开“1.txt”文件,发现刚才目录中的文件名已经都被存在到这个文本文件中了。

参考技术A

Linux命令行参数数目是有限的,执行ls *.gz时,当通配符展开后,ls命令的参数列表超长了,导致运行出错。

如果只是想得到当前目录下(不包括子目录)的相关文件时,可以这样:

ls -1 | grep ".gz$" > 1.txt

如果想得到当前目录下,包括子目录中的相关文件时,应该用find命令:

find . -type f -name "*.gz" > 1.txt

参考技术B ls 本身不能处理*通配符,其参数是shell根据*.gz产生的,文件太多就不行了。可用 find -maxdepth 1 -name "*.gz"
(要加双引号确保*号能让find去处理)本回答被提问者采纳
参考技术C Linux命令支持的参数数目是有限的,而你的文件应该比较多,导致当通配符展开后,ls命令的参数列表超长了。
这样应该可以:
ls | grep ".gz" > 1.txt
参考技术D ls *.gz |xargs>1.txt

以上是关于Linux怎么将一个文件后五行内容转存到其他目录下?的主要内容,如果未能解决你的问题,请参考以下文章

linux文件挂载?

linux怎么将一个文件移动到另一个目录下

linux怎样将文件覆盖到另一个文件

linux下查看文件第几行内容的方法?

linux 怎么将文件拷贝到目录

linux怎么删除指定目录的内容?