【发布时间】:2014-12-01 00:36:00
【问题描述】:
我需要将 /data/files 目录中的一堆文件移动到一个新的文件夹结构中。在 /data 目录中,我有一个清单文件,其中包含每个文件的完整工作路径。
源文件:
/data/files/this_file_1.sh
/data/files/this_file_2.sh
清单文件包含:
/path/to/where/file/goes/this_file_1.sh
/a/different/path/to/file/this_file_2.sh
我需要帮助编写一个可以在清单中找到文件名并运行复制命令的 shell 脚本。如果目录结构不存在,则创建它。
#!/bin/bash
for file_name in $(cat manifest); do
name=$(basename $file_name);
path= ??
# Mkdir / Copy
done
- 如何从文件的完整路径中获取文件名?
- 如何在复制文件之前创建目录?
【问题讨论】:
-
help 意思是:让(某人)做某事更容易。那是不一样的:做整个工作而不是他的。请阅读How to Ask。
-
我知道帮助的定义。我正在寻求帮助 - 关于如何做某事的参考或指针,以便我可以自己编写脚本。不指望有人把所有事情都写得详细。我不熟悉如何在 shell 中读取文件并从完整路径中获取文件名以便能够将其放入数组中,以便对每个文件运行复制命令。
-
我认为
path将等于file_name -
所以我可以获取文件名,我现在如何获取没有文件名的路径? path=$file_name 给了我完整的路径,最后是文件名。
-
dirname以防你没有看到我的其他评论