将文本添加到文件名的开头
Prepend text to beginning of file names
我想在目录中每个文件的开头添加一串文本。字符串是 uniwisc
.
当我运行脚本时:
#!/bin/sh
url="ftp://rammftp.cira.colostate.edu/Lindsey/spc/ir/"
wget -r -nd --no-parent -nc -P /awips2/edex/data/goes14/ $url
find /awips2/edex/data/goes14/ -type f -exec cp {} /awips2/edex/data/uniwisc/ \;
for f in /awips2/edex/data/uniwisc/*;
do
f="$(basename $f)"
mv "$f" "uniwisc.$f"
done;
find /awips2/edex/data/uniwisc/ -type f -mmin -6 -exec mv {} /awips2/edex/data/manual/ \;
exit 0
我收到错误 mv: cannot stat '<filenames>' "No such file or directory.
您可以通过多种不同的方式做到这一点。
使用 bash shell:
内置的参数扩展
for f in <dir path>/*; do
mv "$f" "${f%/*}/uniwisc.${f##*/}"
done
使用重命名命令:
rename 's!^!uniwisc.!' *
按照 CodeGnome 的建议使用 basename
:
for f in <dir path>/*; do
mv "$f" "$(dirname "$f")/uniwisc.$(basename "$f")"
done
我本来打算写更多的方法,但方法很多,而且变化不大。就个人而言,在那种情况下我会使用重命名命令。
我想在目录中每个文件的开头添加一串文本。字符串是 uniwisc
.
当我运行脚本时:
#!/bin/sh
url="ftp://rammftp.cira.colostate.edu/Lindsey/spc/ir/"
wget -r -nd --no-parent -nc -P /awips2/edex/data/goes14/ $url
find /awips2/edex/data/goes14/ -type f -exec cp {} /awips2/edex/data/uniwisc/ \;
for f in /awips2/edex/data/uniwisc/*;
do
f="$(basename $f)"
mv "$f" "uniwisc.$f"
done;
find /awips2/edex/data/uniwisc/ -type f -mmin -6 -exec mv {} /awips2/edex/data/manual/ \;
exit 0
我收到错误 mv: cannot stat '<filenames>' "No such file or directory.
您可以通过多种不同的方式做到这一点。
使用 bash shell:
内置的参数扩展for f in <dir path>/*; do
mv "$f" "${f%/*}/uniwisc.${f##*/}"
done
使用重命名命令:
rename 's!^!uniwisc.!' *
按照 CodeGnome 的建议使用 basename
:
for f in <dir path>/*; do
mv "$f" "$(dirname "$f")/uniwisc.$(basename "$f")"
done
我本来打算写更多的方法,但方法很多,而且变化不大。就个人而言,在那种情况下我会使用重命名命令。