要将OS X服务器的内容传输到兼容NTFS的服务器,我需要清理所有文件名,保留原始时间戳。
我已经完成了以下命令:
1-表示重命名命令 (OS X VERSION)FIRST:brew install rename
find "$1" -print0 | xargs -0 rename 's/[\\:*?"<>|]/-/g'
2-保留时间戳:
touch -r "$1" reference.tmp; mv -- "$1" "$2"; touch -r reference.tmp -- "$2"; rm reference.tmp
有人知道如何将两者结合到一个脚本中吗? 所有帮助都非常感谢! :)
答案 0 :(得分:1)
由brew install rename
(http://plasmasturm.org/code/rename/)安装的重命名似乎默认保留mtime,atime和ctime以及创建时间。
$ touch a
$ stat -f'%m %a %c %B' a
1385979835 1385979835 1385979835 1385979835
$ rename s/a/b/ *
$ stat -f'%m %a %c %B' b
1385979835 1385979835 1385979835 1385979835
你也可以使用这样的命令:
for f in **/*; do mv -- "$f" "${f//[\\:*?\"<>|]/-}"; done
**
需要bash 4.0或更高版本以及shopt -s globstar
。