我有一个假日文件夹,所有图片都在同一文件夹中未分类,所有文件都标有年份。我想为今年创建一个文件夹。我已经解决了这个问题:
#!/bin/bash
SOURCE=/path/to/pictures
cd ~/pictures/sorted.by.year/
ls $SOURCE | grep -o -P '(?<!\d)\d{4}(?!\d)' | tr '/' '\n' | sort |
uniq | xargs mkdir
现在我的问题是,我想从文件名创建一个符号链接到所有年份文件夹,这样它就会创建符号链接,如下所示:
〜/图片/ sorted.by.year /的 2014 /symlink-picture.on.sister。的 2014 .JPG
〜/图片/ sorted.by.year /的 2012 /symlink-picture.on.dad。的 2012 .JPG
我尝试了xargs
,但结果并不像上面的例子中那样。
有人知道该怎么做吗?
答案 0 :(得分:1)
请检查此脚本,我在脚本后添加了更多行:
#!/bin/bash
SOURCE=/path/to/pictures
cd ~/pictures/sorted.by.year/
ls $SOURCE | grep -o -P '(?<!\d)\d{4}(?!\d)' | tr '/' '\n' | sort | uniq | xargs mkdir
for file in /path/to/pictures/*
do
if [[ -d $file ]]; then # Skip directory
continue;
fi
DIRNAME=$(echo "$file" | grep -o -P '(?<!\d)\d{4}(?!\d)');
ln -s "$file" "./$DIRNAME/"
done