Удалите первые n символов из набора имен файлов с помощью cut

я использую

ls | cut -c 5-

Это возвращает список имен файлов в формате, который я им хочу, но фактически не выполняет действие. Пожалуйста, порекомендуйте.

Ответ 1

rename -n 's/.{5}(.*)/$1/' *

-n предназначен для имитации; удалите его, чтобы получить фактический результат.

Ответ 2

вы можете использовать следующую команду, когда находитесь в папке, где вы хотите переименовать:

rename -n -v  's/^(.{5})//' *

-n для каких-либо действий и -v чтобы показать, какими будут изменения. если вы удовлетворены результатами, вы можете удалить оба из них

rename 's/^(.{5})//' *

Ответ 3

Что-то вроде этого должно работать:

for x in *; do
    echo mv $x 'echo $x | cut -c 5-'
done

Обратите внимание, что это может быть разрушительным, поэтому сначала запустите его таким образом, а затем удалите ведущее echo только вы уверены, что он делает то, что вы хотите.

Ответ 4

Если вы получите сообщение об ошибке:

переименование не распознается как имя командлета

Это может сработать для вас,

get-childitem * | rename-item -newname { [string]($_.name).substring(5) }