使用父目录和祖父目录重命名文件
Renaming file with parent and grandparent directory
如果有这样的文件路径:
/path/topic/day/name.pdf
在 bash 中有没有办法重命名文件,包括文件所在的父目录和祖父目录的名称?
例如
/path/topic/day/topic-day.pdf
感谢您的帮助
#!/bin/bash
function assemble_path() {
echo "$(realpath "" | rev | cut -d'/' -f2- | rev)"
}
function assemble_parents() {
echo "$(echo "" | rev | cut -d"/" -f-2 | rev | tr '/' '-')"
}
function rename_to_parents() {
filetype=$(echo "" | rev | cut -d"." -f1 | rev)
filepath=$(assemble_path "")
parents=$(assemble_parents "$filepath")
mv "$(realpath "")" "$filepath/$parents.$filetype"
}
rename_to_parents ""
用法:
- 将此脚本保存在一个文件中,例如
rename.sh
- 为其添加执行权限,例如
chmod u+x rename.sh
- 用一个文件作为参数执行它,你想重命名,例如
./rename.sh name.pdf
输出(/path/topic/day/name.pdf
):
/path/topic/day/topic-day.pdf
如果有这样的文件路径:
/path/topic/day/name.pdf
在 bash 中有没有办法重命名文件,包括文件所在的父目录和祖父目录的名称?
例如
/path/topic/day/topic-day.pdf
感谢您的帮助
#!/bin/bash
function assemble_path() {
echo "$(realpath "" | rev | cut -d'/' -f2- | rev)"
}
function assemble_parents() {
echo "$(echo "" | rev | cut -d"/" -f-2 | rev | tr '/' '-')"
}
function rename_to_parents() {
filetype=$(echo "" | rev | cut -d"." -f1 | rev)
filepath=$(assemble_path "")
parents=$(assemble_parents "$filepath")
mv "$(realpath "")" "$filepath/$parents.$filetype"
}
rename_to_parents ""
用法:
- 将此脚本保存在一个文件中,例如
rename.sh
- 为其添加执行权限,例如
chmod u+x rename.sh
- 用一个文件作为参数执行它,你想重命名,例如
./rename.sh name.pdf
输出(/path/topic/day/name.pdf
):
/path/topic/day/topic-day.pdf