История изменений
Исправление legolegs, (текущая версия) :
Во-первых, тебе -ls
тут не нужно. Парсить выхлоп ls (настоящего или его имитации от find) - плохая практика.
Во-вторых, если выхлоп упростить, то его проще парсить:
find -printf '%TY %p\n' |
while read -r year fname; do
printf '[%s] [%s]\n' "$year" "$fname"
ls "$fname"
# mv "$fname" "$year"/
done
$ ls
'back\slash' 'dollar $sign' 'double space' 'space space' кириллица
$ find -type f -printf '%TY %p\n' | while read -r year fname; do printf '[%s] [%s]\n' "$year" "$fname"; ls "$fname"; done
[2020] [./кириллица]
./кириллица
[2020] [./double space]
'./double space'
[2020] [./back\slash]
'./back\slash'
[2020] [./dollar $sign]
'./dollar $sign'
[2020] [./space space]
'./space space'
Исправление legolegs, :
Во-первых, тебе -ls
тут не нужно. Парсить выхлоп ls (настоящего или его имитации от find) - плохая практика.
Во-вторых, если выхлоп упростить, то его проще парсить:
find -printf '%TY %p\n' |
while read -r year fname; do
printf '[%s] [%s]\n' "$year" "$fname"
ls "$fname"
# mv "$fname" "$year"/
done
$ ls
'back\slash' 'dollar $sign' 'double space' 'space space'
$ find -type f -printf '%TY %p\n' | while read -r year fname; do printf '[%s] [%s]\n' "$year" "$fname"; ls "$fname"; done
[2020] [./double space]
'./double space'
[2020] [./back\slash]
'./back\slash'
[2020] [./dollar $sign]
'./dollar $sign'
[2020] [./space space]
'./space space'
Исходная версия legolegs, :
Во-первых, тебе -ls
тут не нужно. Парсить выхлоп ls (настоящего или его имитации от find) - плохая практика.
Во-вторых, если выхлоп упростить, то его проще парсить:
find -printf '%TY %p\n' |
while read -r year fname; do
printf '[%s] [%s]\n' "$year" "$fname"
ls "$fname"
# mv "$fname" "$year"/
done