在目录中我有X.txt
, Y.txt
,Z.txt
文件。我想将这些文件名移动到一个文件中,如下所示:
Out_file.txt
X.txt
Y.txt
Z.txt
有什么unix命令可以实现这个吗?
答案1
ls >> Out_file.txt
当然,当您位于相关文件夹中时...
答案2
这是非常简单的步骤,您只需将“ls”的输出重定向到文件中即可。
ls -1 >> file.txt
答案3
解决此问题的另一种选择如下:
ls | tee Out_File.txt
答案4
find
我认为对于OP的问题以及许多类似的目标来说是一个不错的选择:
递归和相关文件规范是“自由的”,因此此命令将收集用户当前目录下或以下的
find
所有文件的列表,并将该列表重定向到:.txt
Out_file.txt
find -name \*.txt > Out_file.txt
输出将采用以下形式
./filename.txt
:每行一个文件。如果输出中只需要裸文件名(无目录规范),
find
(最多版本)有一个内置printf
选项:find -name \*.txt -printf "%f\n" > Out_file.txt
输出将采用以下形式
filename.txt
:每行一个文件。如果不需要完全递归(或者如果“有限递归”是必需的),该
maxdepth
选项可用:find -maxdepth 1 -name \*.txt -printf "%f\n" > Out_file.txt
此输出将与此处的许多其他答案采用相同的形式,但不一定按字母顺序排序。如果需要按字母顺序排列,则
find
可以通过管道传输输出sort
:find -maxdepth 1 -name \*.txt -printf "%f\n" | sort > Out_file.txt
X.txt Y.txt Z.txt
我发现最有用的版本是:
find $(pwd) -name \*.mp3 > FullPlaylist.txt
我可以创建一个完整的播放列表(例如 mp3 编码的)音乐文件,可以与
mpg321