Chatgpt 帮忙写的脚本_用shell 写一段代码,要求获取指定目录下的所有文件的 文件路径、文件名、文件创建时间,文件最后修改时间,并将结果导出到指定路径的csv 格式文件中

发布时间 2023-04-19 23:07:50作者: vmsky

需求:用shell 写一段代码,要求获取指定目录下的所有文件的 文件路径、文件名、文件创建时间,文件最后修改时间,并将结果导出到指定路径的csv 格式文件中
以下是使用 Shell 实现获取指定目录下所有文件的路径、名称、创建时间和修改时间,并将结果导出到 CSV 文件的示例代码:

点击查看代码
shell
# 设置源目录和目标文件路径
source_directory="/path/to/source/dir"
target_file="/path/to/output/file.csv"

# 获取所有文件信息并写入到变量中,每个文件信息用一行表示
echo "文件路径,文件名,创建时间,最后修改时间" > "$target_file" # 写入表头
find "$source_directory" -type f -printf "\"%p\",\"%f\",\"%CY-%Cm-%Cd %CH:%CM:%CS\",\"%TY-%Tm-%Td %TH:%TM:%TS\"\n" >> "$target_file"
在上述代码中,首先设置了源目录和目标文件路径。随后通过 find 命令遍历 $source_directory 目录及其子目录下的所有文件,并使用 -printf 选项输出文件信息。

其中,-printf 后面的参数 ""%p","%f","%CY-%Cm-%Cd %CH:%CM:%CS","%TY-%Tm-%Td %TH:%TM:%TS"\n" 表示输出四个字段,分别是:

""%p"":文件路径,用双引号括起来;
""%f"":文件名,用双引号括起来;
""%CY-%Cm-%Cd %CH:%CM:%CS"":文件创建时间,格式为 YYYY-MM-DD HH:MM:SS,用双引号括起来;
""%TY-%Tm-%Td %TH:%TM:%TS"\n":文件最后修改时间,格式同上,且最后还有一个换行符。
最后使用 >> 将输出结果添加到目标文件中(在第一行之前)。

需要注意的是,以上示例代码使用了双引号将字段值进行了括起来。这是为了避免在某些 CSV 编辑器中因为分隔符的存在而导致内容显示不正确。如果您确定输出的文件没有特殊字符或小数点等问题,也可以省略双引号。