【发布时间】:2021-07-01 12:20:53
【问题描述】:
我找到了这个 shell 脚本($1,$2 是目录):
mv "$2" "$1" || exit # Make $2 a subdirectory of $1
cd "$1/$(basename "$2")" || exit # Change directories for simplicity
for f in *; do
mv "$f" "${f%.*}.txt" # Add or change the extension
done
它将第二个目录移动到第一个目录中(因此第二个目录成为第一个目录的子目录)并且第二个目录中的所有文件都将具有“.txt”扩展名。我不明白为什么cd "$1/$2" won't work basename 不能从给定目录中删除文件名?有人可以解释这部分如何:
cd "$1/$(basename "$2")" 有效吗?由于基本名称,$2 还需要用单独的引号 ("$2") 括起来?
【问题讨论】:
-
假设使用参数
/full/path/to/1 /full/path/to/2调用脚本
标签: shell directory move basename