【发布时间】:2017-12-24 03:43:48
【问题描述】:
我有一个 shell 脚本,它可以自动将手机文件夹中的复制过程自动复制到 Mac 上的本地文件夹中,然后删除手机上的原件。之前写过
cd /Users/foo/Phone\ Backups/Phone\ One/Pictures
echo "Meta info of the picture files in the local folder before backup" >> /Users/foo/Documents/preBackup.txt
find . -exec stat -c " %n size %s bytes; LMT %y; CT %w; LAT %x; LSC %z; %F; Owned by: %U" {} \; | tee -a /Users/foo/Documents/preBackup.txt
cp -a /Volumes/Foo\'s\ Phone\ One\ Pictures/. /Users/foo/Phone\ Backups/Phone\ One/Pictures
echo "Backup complete. Delete all records on the phone."
cd /Volumes/Foo\'s\ Phone\ One\ Pictures
find . ! -type d -delete
echo "Deleted."
今天我运行脚本的时候不小心忘记插上手机了,然后我惊讶地发现我本地文件夹中的所有图片文件也都被删除了。我猜是因为它没有找到我手机的图片文件夹,所以当它运行命令“find . ! -type d -delete”时它还在我的本地文件夹中。
所以现在只想问一下,在 Mac OS 的 shell 脚本中检查卷是否挂载以及卷名是否包含 ' 和空格的最佳方法是什么?
谢谢大家。
【问题讨论】:
-
“df”命令的最佳起点。
-
为什么知道卷名是否包含
'和空格很重要?我在您的代码 sn-p 中看不到任何需要的地方。