将 (.filename) 文件重命名为原始名称

将 (.filename) 文件重命名为原始名称

我正在尝试撤销通过 所做的更改rename

我正在重命名子文件夹中的文件,然后不假思索地尝试..使用以下命令清除名称:

rename "s/.././" *

现在我有一个包含 600 个文件的文件夹,每个文件名的前两个字母更改为.zzyGir*

有什么方法可以将“。”改回每个文件名的首字母而不丢失整个文件?

我尝试过不同的方法但都没有成功,例如:

rename "s/./Di/; *

我也愿意接受一次一个文件的解决方案,主要是为了避免丢失文件。

答案1

前两个字母已成为历史。没有机会找回它们。但你可以重命名文件以删除开头部分,.具体步骤如下

确保bash在终端中有

bash

进入带有错误文件名的文件夹

shopt -s dotglob
rename -n 's/^\./Di/' *

如果一切顺利

rename 's/^\./Di/' *

完成

shopt -u dotglob

解释

  • rename -n "s/^\./Di/" *

    • -n

      无操作:打印要重命名的文件的名称,但不重命名。

    • /^\./

      • ^断言字符串开头的位置

      • \.与字符.逐字匹配

  • shopt -s dotglob&shopt -u dotglob

    • shopt

      shopt [-pqsu] [-o] [optname …]
      

      切换控制可选 shell 行为的设置值。

    • -s

      启用(设置)每个 optname。

    • -u

      禁用(取消设置)每个 optname。

    • dotglob

      .如果设置了,Bash 会在文件名扩展的结果中包含以 a 开头的文件名。


例子

$ ls -oag
total 88
drwxrwxr-x   2  4096 Jul 17 17:16 .
drwxr-xr-x 226 86016 Jul 17 17:13 ..
-rw-rw-r--   1     0 Jul 17 17:16 .foo

$ rename "s/^\./Di/" *

$ ls -oag
total 88
drwxrwxr-x   2  4096 Jul 17 17:16 .
drwxr-xr-x 226 86016 Jul 17 17:13 ..
-rw-rw-r--   1     0 Jul 17 17:16 Difoo

我不确定你的意思

有什么方法可以将“。”改回每个文件名的首字母

你是指这样的吗?

.zzyGir->zzzzGir

如果是,则在 bash 中使用以下命令:

shopt -s dotglob
rename -n 's/^\.(..)(.*)/$1$1$2/' *

检查结果并重命名

rename 's/^\.(..)(.*)/$1$1$2/' *

最后

shopt -s dotglob

答案2

据我了解,您有一个包含如下文件的文件夹:

ls -la

drwxrwxr-x 2 ron ron 4096 Jul 17 20:50 .
drwxrwxr-x 3 ron ron 4096 Jul 17 20:47 ..
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 .abc
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 .Gyr
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 .hig123
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 .zyz

并且您想要.从所有文件名中删除它以使其:

abc
Gyr
hig123
zyz

为此,您可以使用findrename

find . ! -path . -type f -name ".*" -exec rename -n "s/.\/.//" {} \;

上述命令(即使用-n)是一次试运行:

find . ! -path . -type f -name ".*" -exec rename -n "s/.\/.//" {} \;
rename(./.zyz, zyz)
rename(./.abc, abc)
rename(./.Gyr, Gyr)
rename(./.hig123, hig123)

运行它而不-n实际更改文件名:

find . ! -path . -type f -name ".*" -exec rename "s/.\/.//" {} \;
ls -la
total 8   
drwxrwxr-x 2 ron ron 4096 Jul 17 20:59 .
drwxrwxr-x 3 ron ron 4096 Jul 17 20:47 ..
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 abc
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 Gyr
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 hig123
-rw-rw-r-- 1 ron ron    0 Jul 17 20:47 zyz

相关内容