【发布时间】:2011-05-05 22:59:38
【问题描述】:
我对 Linux(在本例中为 CentOS)相当陌生。我有一个文件夹,里面有大约 2000 个文件。理想情况下,我想在命令提示符下执行一个命令,将所有文件的名称写到一个 txt 文件中。
如果必须,我也可以编写一个实际的程序来执行此操作,我只是在想可能有一种方法可以简单地从命令提示符处执行此操作。
【问题讨论】:
-
注意这一点,文件名可能包含各种棘手的字符。例如。换行
我对 Linux(在本例中为 CentOS)相当陌生。我有一个文件夹,里面有大约 2000 个文件。理想情况下,我想在命令提示符下执行一个命令,将所有文件的名称写到一个 txt 文件中。
如果必须,我也可以编写一个实际的程序来执行此操作,我只是在想可能有一种方法可以简单地从命令提示符处执行此操作。
【问题讨论】:
你可以使用
ls > filenames.txt
(通常,使用“Terminal”、“shell”或“Bash”启动 shell。)您可能需要先使用 cd 进入该文件夹,或者您可以使用 ls ~/docs > filenames.txt
【讨论】:
printf '%s\n' "$PWD"/* >filenames.txt
ls。见mywiki.wooledge.org/ParsingLs
"a","b","c","d","e" 的形式保存到文本文件中
如果只需要一个目录中直接包含的常规文件的名称(假设它是~/dirs),您可以这样做
find ~/docs -type f -maxdepth 1 > filenames.txt
【讨论】:
grep 过滤find 的输出:find ~/docs -type f -maxdepth 1 | grep -v '~$' > filenames.txt
find 的-name 与-not 一起使用:find ~/docs -type f -maxdepth 1 -not -name '*~' > filenames.txt