Переименовать регистр файлов в JFS без учета регистра
Я работал над файловой системой JFS, созданной с опцией -O (регистрозависимые имена файлов).
Как я могу легко переименовать файл из Test.txt в test.txt?
Используя mv сообщите об ошибке:
mv: ‘Test.txt’ and ‘test.txt’ are the same file
И наутилус сообщает
The name “test.txt” is already used in this location. Please use a different name.
Теперь я могу переименовать его в Test2.txt с последующим переименованием в test.txt
1 ответ
Вы можете использовать rename
команда.
Это на самом деле не встроенная команда оболочки, как mv
, но жемчужный скрипт, который поставляется по умолчанию с большинством дистрибутивов GNU/Linux. Это использование немного отличается от mv
потому что он использует регулярные выражения Pearl для сравнения со списком файлов.
Вот как это использовать в вашем случае:
rename 's/Test\.txt/test\.txt/' *
s
говорит rename
Команда для поиска и замены всех вхождений Test.txt с test.txt. Точки .
внутри регулярного выражения необходимо экранировать с помощью \
Вот почему имена файлов пишутся как Test\.txt
, Обратите внимание на *
в конце команды это означает просмотр всех файлов в текущем каталоге.
Вы можете передать -n
вариант к rename
Команда, если вы хотите проверить это без внесения каких-либо изменений.