Как я могу найти все файлы в папке рекурсивно по определенному имени и переименовать их?

-rf:

Аргумент -r означает «рекурсивный». Он удалит все, что вы просите, а также все файлы и каталоги под ним. Аргумент -f означает «сила». Он будет игнорировать несуществующие файлы и никогда не запрашивать.

-vf:

Аргумент -r означает «рекурсивный». Он удалит все, что вы просите, а также все файлы и каталоги под ним. Аргумент -v означает «verbose». Он распечатает все элементы, которые он удалит.

Самое большое различие заключается в следующем: -rf удалит все файлы и каталоги в выбранном вами месте и ничего не напечатает. -vf НЕ удаляет непустые каталоги и печатает все, что он удаляет.

Обратите внимание, что эта информация исходит из справочной страницы:

$ man rm
2
задан 5 April 2011 в 17:00

18 ответов

Полное решение будет выглядеть следующим образом

find -name '*.file.php' -exec rename 's/\.file\.php$/.file1.php/' {} \;
5
ответ дан 25 May 2018 в 22:15

Полное решение будет выглядеть следующим образом

find -name '*.file.php' -exec rename 's/\.file\.php$/.file1.php/' {} \;
5
ответ дан 25 July 2018 в 22:15

Полное решение будет выглядеть следующим образом

find -name '*.file.php' -exec rename 's/\.file\.php$/.file1.php/' {} \;
5
ответ дан 26 July 2018 в 20:08

Полное решение будет выглядеть следующим образом

find -name '*.file.php' -exec rename 's/\.file\.php$/.file1.php/' {} \;
5
ответ дан 2 August 2018 в 03:43

Полное решение будет выглядеть следующим образом

find -name '*.file.php' -exec rename 's/\.file\.php$/.file1.php/' {} \;
5
ответ дан 4 August 2018 в 19:47

Полное решение выглядело бы следующим образом:

  find -name '* .file.php' -exec переименовать '\ file.php $ /. file1.php /'  {} \;   
5
ответ дан 6 August 2018 в 03:51

Полное решение выглядело бы следующим образом:

  find -name '* .file.php' -exec переименовать '\ file.php $ /. file1.php /'  {} \;   
5
ответ дан 7 August 2018 в 21:47

Полное решение выглядело бы следующим образом:

  find -name '* .file.php' -exec переименовать '\ file.php $ /. file1.php /'  {} \;   
5
ответ дан 10 August 2018 в 10:01

Полное решение выглядело бы следующим образом:

  find -name '* .file.php' -exec переименовать '\ file.php $ /. file1.php /'  {} \;   
5
ответ дан 13 August 2018 в 16:21

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я предполагаю, что это так.

NAME rename - переименовывает несколько файлов. SYNOPSIS rename [-v] [-n] [-f] perlexpr [files] ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться через стандартный ввод.
   For example, to rename all files matching "*.bak" to strip the
   extension, you might say

           rename 's/\.bak$//' *.bak

   To translate uppercase names to lower, you'd use

           rename 'y/A-Z/a-z/' *

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

NAME rename - переименовывает несколько файлов

rename -n 's / .htm $ / .html /' * .htm

СИНТАКСИС rename [-v] [-n] [-f] perlexpr [files]

Если результат вышеуказанного тестового прогона выглядел нормально, тогда вы можете запустить окончательную версию:

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

. -v является необязательным, но рекомендуется включить его, потому что это единственная запись, которую вы будете иметь внесенные изменения командой rename ....
0
ответ дан 25 May 2018 в 22:15

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я предполагаю, что это так.

NAME rename - переименовывает несколько файлов. SYNOPSIS rename [-v] [-n] [-f] perlexpr [files] ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться через стандартный ввод. For example, to rename all files matching "*.bak" to strip the extension, you might say rename 's/\.bak$//' *.bak To translate uppercase names to lower, you'd use rename 'y/A-Z/a-z/' *

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

NAME rename - переименовывает несколько файлов

rename -n 's / .htm $ / .html /' * .htm

СИНТАКСИС rename [-v] [-n] [-f] perlexpr [files]

Если результат вышеуказанного тестового прогона выглядел нормально, тогда вы можете запустить окончательную версию:

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

. -V является необязательным, но рекомендуется включить его, потому что это единственная запись, которую вы будете иметь внесенные изменения командой rename ....
0
ответ дан 25 July 2018 в 22:15

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я предполагаю, что это так.

NAME rename - переименовывает несколько файлов. SYNOPSIS rename [-v] [-n] [-f] perlexpr [files] ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться через стандартный ввод. For example, to rename all files matching "*.bak" to strip the extension, you might say rename 's/\.bak$//' *.bak To translate uppercase names to lower, you'd use rename 'y/A-Z/a-z/' *

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

NAME rename - переименовывает несколько файлов

rename -n 's / .htm $ / .html /' * .htm

СИНТАКСИС rename [-v] [-n] [-f] perlexpr [files]

Если результат вышеуказанного тестового прогона выглядел нормально, тогда вы можете запустить окончательную версию:

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

. -V является необязательным, но рекомендуется включить его, потому что это единственная запись, которую вы будете иметь внесенные изменения командой rename ....
0
ответ дан 26 July 2018 в 20:08

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я предполагаю, что это так.

NAME rename - переименовывает несколько файлов. SYNOPSIS rename [-v] [-n] [-f] perlexpr [files] ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться через стандартный ввод. For example, to rename all files matching "*.bak" to strip the extension, you might say rename 's/\.bak$//' *.bak To translate uppercase names to lower, you'd use rename 'y/A-Z/a-z/' *

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

NAME rename - переименовывает несколько файлов

rename -n 's / .htm $ / .html /' * .htm

СИНТАКСИС rename [-v] [-n] [-f] perlexpr [files]

Если результат вышеуказанного тестового прогона выглядел нормально, тогда вы можете запустить окончательную версию:

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

. -V является необязательным, но рекомендуется включить его, потому что это единственная запись, которую вы будете иметь внесенные изменения командой rename ....
0
ответ дан 2 August 2018 в 03:43

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я предполагаю, что это так.

NAME rename - переименовывает несколько файлов. SYNOPSIS rename [-v] [-n] [-f] perlexpr [files] ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться через стандартный ввод. For example, to rename all files matching "*.bak" to strip the extension, you might say rename 's/\.bak$//' *.bak To translate uppercase names to lower, you'd use rename 'y/A-Z/a-z/' *

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

NAME rename - переименовывает несколько файлов

rename -n 's / .htm $ / .html /' * .htm

СИНТАКСИС rename [-v] [-n] [-f] perlexpr [files]

Если результат вышеуказанного тестового прогона выглядел нормально, тогда вы можете запустить окончательную версию:

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

. -V является необязательным, но рекомендуется включить его, потому что это единственная запись, которую вы будете иметь внесенные изменения командой rename ....
0
ответ дан 4 August 2018 в 19:47

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я так думаю.

NAME rename - переименовывает несколько файлов

СИНТАКСИС переименовать [-v] [-n] [-f] perlexpr [files]

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

  Например, чтобы переименовать все файлы, соответствующие «* .bak», чтобы разделить расширение, вы можете сказать переименовать  's / \. bak $ //' * .bak Чтобы перевести имена верхнего регистра на нижний, вы должны использовать переименование 'y / AZ / az /' *  

a пример, скопированный из результата Google, может быть уже совсем рядом с тем, что вы хотите:

Вот пример команды rename:

rename -n 's / .htm $ / .html / '* .htm

-n означает, что это тестовый прогон и фактически не будет изменять файлы. Он покажет вам список файлов, которые будут переименованы, если вы удалите -n. В вышеприведенном случае он преобразует все файлы в текущую директорию из расширения файла .htm в .html.

Если результат вышеуказанного тестового прогона выглядел нормально, вы можете запустить финальную версию:

rename -v 's / .htm $ / .html /' * .htm

-v является необязательным, но это хорошая идея включить его, потому что это единственный запись будет иметь изменения, внесенные командой rename ....

0
ответ дан 6 August 2018 в 03:51

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я так думаю.

NAME rename - переименовывает несколько файлов

СИНТАКСИС переименовать [-v] [-n] [-f] perlexpr [files]

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

  Например, чтобы переименовать все файлы, соответствующие «* .bak», чтобы разделить расширение, вы можете сказать переименовать  's / \. bak $ //' * .bak Чтобы перевести имена верхнего регистра на нижний, вы должны использовать переименование 'y / AZ / az /' *  

a пример, скопированный из результата Google, может быть уже совсем рядом с тем, что вы хотите:

Вот пример команды rename:

rename -n 's / .htm $ / .html / '* .htm

-n означает, что это тестовый прогон и фактически не будет изменять файлы. Он покажет вам список файлов, которые будут переименованы, если вы удалите -n. В вышеприведенном случае он преобразует все файлы в текущую директорию из расширения файла .htm в .html.

Если результат вышеуказанного тестового прогона выглядел нормально, вы можете запустить финальную версию:

rename -v 's / .htm $ / .html /' * .htm

-v является необязательным, но это хорошая идея включить его, потому что это единственный запись будет иметь изменения, внесенные командой rename ....

0
ответ дан 7 August 2018 в 21:47

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я так думаю.

NAME rename - переименовывает несколько файлов

СИНТАКСИС переименовать [-v] [-n] [-f] perlexpr [files]

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

  Например, чтобы переименовать все файлы, соответствующие «* .bak», чтобы разделить расширение, вы можете сказать переименовать  's / \. bak $ //' * .bak Чтобы перевести имена верхнего регистра на нижний, вы должны использовать переименование 'y / AZ / az /' *  

a пример, скопированный из результата Google, может быть уже совсем рядом с тем, что вы хотите:

Вот пример команды rename:

rename -n 's / .htm $ / .html / '* .htm

-n означает, что это тестовый прогон и фактически не будет изменять файлы. Он покажет вам список файлов, которые будут переименованы, если вы удалите -n. В вышеприведенном случае он преобразует все файлы в текущую директорию из расширения файла .htm в .html.

Если результат вышеуказанного тестового прогона выглядел нормально, вы можете запустить финальную версию:

rename -v 's / .htm $ / .html /' * .htm

-v является необязательным, но это хорошая идея включить его, потому что это единственный запись будет иметь изменения, внесенные командой rename ....

0
ответ дан 10 August 2018 в 10:01

у вас есть rename на debian? idk, но поскольку он доступен на ubuntu, я так думаю.

NAME rename - переименовывает несколько файлов

СИНТАКСИС переименовать [-v] [-n] [-f] perlexpr [files]

ОПИСАНИЕ «rename» переименовывает имена файлов, предоставленные в соответствии с правилом, указанным в качестве первого аргумента. Аргумент perlexpr - это выражение Perl, которое, как ожидается, изменит строку $ _ в Perl, по крайней мере, для некоторых указанных имен файлов. Если данное имя не изменено выражением, оно не будет переименовано. Если в командной строке не указаны имена файлов, имена файлов будут считываться с помощью стандартного ввода.

  Например, чтобы переименовать все файлы, соответствующие «* .bak», чтобы разделить расширение, вы можете сказать переименовать  's / \. bak $ //' * .bak Чтобы перевести имена верхнего регистра на нижний, вы должны использовать переименование 'y / AZ / az /' *  

a пример, скопированный из результата Google, может быть уже совсем рядом с тем, что вы хотите:

Вот пример команды rename:

rename -n 's / .htm $ / .html / '* .htm

-n означает, что это тестовый прогон и фактически не будет изменять файлы. Он покажет вам список файлов, которые будут переименованы, если вы удалите -n. В вышеприведенном случае он преобразует все файлы в текущую директорию из расширения файла .htm в .html.

Если результат вышеуказанного тестового прогона выглядел нормально, вы можете запустить финальную версию:

rename -v 's / .htm $ / .html /' * .htm

-v является необязательным, но это хорошая идея включить его, потому что это единственный запись будет иметь изменения, внесенные командой rename ....

0
ответ дан 13 August 2018 в 16:21

Другие вопросы по тегам:

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