Не может использовать команду 'передозировки' с каталогами

Необходимо заключить формат в кавычки до настоящего времени после + знак.

$ date +"%Y/%m %b"
2013/10 Oct

Относительно переменных. $MOVEDIRSTR кажется ненужным.

MOVEDIR=$(sed -r -e 's:([0-9]{4})([0-9]{2})([0-9]{2}).*:date -d \1-\2-\3 +%Y/%m_%b/%d:' <<< "$line")

С тех пор с $FLIST Вы анализируете даты из того каталога, я не вижу более чистый путь.

ОБНОВЛЕНИЕ № 1

Учитывая обратную связь OP в комментариях ниже, он использует устройство QNAP и настолько так имеет смягченную версию этих команд, обеспеченных BusyBox. Если Вы смотрите на команду даты как так: ls -l /bin/date это - вероятно, ссылка на исполняемый файл, названный busybox или чем-то подобным. Эти команды не полнофункциональны, следовательно Ваши проблемы.

Он подтвердил это:

Вы, вероятно, правы. Моя дата является своим собственным исполняемым файлом, но/bin/sed-> busybox

Учитывая ограничения выше не могут работать методы, обсужденные, так как Вы работаете с ограниченным набором функций с этими инструментами.

3
12.12.2014, 03:11
1 ответ

Как @ G-Man прокомментировал, вы [можете «Читайте каталоги в качестве файла , когда каталоги перестали быть читабельными в качестве файлов? ;

вместо этого, чтобы найти номера I-узлов, вы могли бы использовать

stat
➜  stat -x .
  File: "."
  Size: 1632         FileType: Directory
  Mode: (0755/drwxr-xr-x)         Uid: (  501/  barisa)  Gid: (   20/   staff)
Device: 1,2   Inode: 5431597    Links: 48
Access: Sun Dec 14 15:17:23 2014
Modify: Sun Dec 14 14:16:25 2014
Change: Sun Dec 14 14:16:25 2014
0
27.01.2020, 21:42

Теги

Похожие вопросы