Пакетное переименование файлов в Ubuntu: последовательная нумерация в зависимости от порядка в каталоге. (Ubuntu 16.04)

Чтобы проверить, является ли каталог точкой монтирования: вы можете использовать findmnt для разрешения точки монтирования каталога обратно к устройству, на котором он находится. Например,

$ findmnt -nul -o source /home
/dev/sda3

показывает, что мой /home смонтирован на разделе 3. Если каталог существует, но еще не смонтирован, findmnt не вернет ничего и выйдет с кодом возврата 1.

Если вы предпочитаете, df на каталоге скажет, на каком устройстве находится каталог. В отличие от findmnt, вам не нужно указывать точку монтирования. Например,

$ df /home/meuh
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda3      102862592 48483876  49146872  50% /home

Для каталога в /run, который еще не смонтирован, вы можете ожидать что-то вроде

tmpfs            1966384  1296   1965088   1% /run
0
06.04.2019, 13:35
1 ответ

Попробуйте выполнить следующую команду

i=1; for file in $(ls -v *.avi); do echo "$file --> $i.${file#*.}"; i=$((i+1)); done | less

При условии, что (info about content)не содержит пробелов или символов новой строки, это показывает сопоставление исходного файла с целевым файлом, поэтому вы можете не заметить, если это то, что вам нужно. Если вас это устраивает, выполните строку

i=1; for file in $(ls -v *.avi); do mv "$file" "$i.${file#*.}"; i=$((i+1)); done
0
28.01.2020, 03:51

Теги

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