我看到我有一些减分,...所以我会尝试更好地解决这个问题:
我有一个linux服务器。 (centos 6.5)
This stores all images in /mnt/usb1/images/
This folder also have several subfolders.
drwxrwxr-x 2 1033 users 4096 Jan 25 2009 /mnt/usb1/images/2014_sept_NewYork
drwxrwxr-x 2 1033 users 4096 Jan 25 2009 /mnt/usb1/images/2014_sept_Chicago
..
Would be nice to set the folder date - to same date as image inside folder.
-rwxrw-r-- 1 1033 users 1753062 Mar 4 2007 IMG_0301.jpg
-rwxrw-r-- 1 1033 users 1752525 Mar 4 2007 IMG_0302.jpg
Result:
drwxrwxr-x 2 1033 users 4096 Mar 4 2007 /mnt/usb1/images/2014_sept_NewYork
drwxrwxr-x 2 1033 users 4096 Mar 4 2007 /mnt/usb1/images/2014_sept_Chicago
我的脚本有效,但在一些帮助/评论和改进方面会很好:
#!/bin/bash
echo "" # Space at start
echo "###############################################"
echo "# #"
echo "# Setting folders to file modifications date #"
echo "# #"
echo "###############################################"
echo "--- `date` ---" >> SetFileDate.txt
while read file
do
touch -t $(date -r "$file" +%Y%m%d%H%M) "$(dirname "$file")"
# echo date - folder/filename
echo "`date -r \"$file\"+%Y%m%d%H%M` - \"$dirname $file\"" >> SetFileDate.txt
done < <(find . \( -iname \*.JPG -o -iname \*.jpg -o -iname \*.TIF -o -iname \*.avi -o -iname \*.mkv \))
echo "" >> SetFileDate.txt
为什么我要这个? 因为在早些时候,我复制了一个移动的文件,忘了保留权限..这搞砸了文件夹修改时间。
..我的另一个想法已经完成(感谢那些在stackoverflow上贡献的人),它是关于将文件名设置为本地和子文件夹中的所有文件。 在这里查看脚本:Bash script to read EXIF, rename JPG files and check output if file exit -> create newfile-01.jpg
答案 0 :(得分:0)
您可以进入te文件夹,然后执行:
touch . -t $(printf "%.2i %.2i %.2i %.2i %.2i.%.2i" \
$(echo $(ls -1t --full-time | sed -n "2p" | \
sed -e 's/\(\s\|:\|-\|\.\)\+/\n/g' | \
sed -n "9,14p"))| sed "s/\s\+//g")
这应该是文件夹中文件的最后一次,并根据它设置文件夹的时间。