如何查找文件名中带有冒号的文件?

如何查找文件名中带有冒号的文件?

我们有一个文件夹,里面有很多子文件夹和文件,其中一些包含冒号。这些文件不允许上传到 SharePoint,所以我想找到一种方法来获取所有包含冒号的文件的列表,以便我们可以重命名它们。

使用冒号时 Finder 搜索根本不起作用。

终端命令find / :列出每个文件和文件夹。

有没有办法做到这一点?

答案1

根据我另一个“答案”的评论(对于常规评论来说太复杂了),用户希望查找并重命名包含不寻常/麻烦字符的文件。下面是一个旧的 Perl 脚本,它可以寻找任何目录下任何级别的文件,包括带有特殊字符的文件。

如果您尝试删除正则表达式中需要转义的字符,请像这样运行它:findfile.pl "\*"

您也可以选择在末尾添加一个目录,例如findfile.pl "\*" /opt

如果您尝试用“:”重命名文件(我无法重现),我认为您不需要转义冒号,但如果没有带冒号的文件,我就无法测试这一点。

由于用户想要重命名文件,只需修改最后一行的打印以根据要求重命名即可。

use strict;
use warnings;
use File::Find;

my $substring;
my $dir;

if ($#ARGV < 0) {
  print "\nUSAGE: $0 <substring> [dir]\n\n";
  print "The substring is compared against the names of files located\nin (or under) dir (which is \".\" if not specified).\n";
  print "\nPlease enter the substring: ";
  $substring = <>;
  chomp $substring;
  print "Please enter the directory: [.] ";
  $dir = <>;
  chomp $dir;
  if ($dir eq "") { $dir = "." }
}
else {
  $substring = $ARGV[0];
  if ($#ARGV > 0) {
    $dir = $ARGV[1];
  }
  else {
    $dir = ".";
  }
}

find(sub {if (m/$substring/i) {print "$File::Find::name\n"}}, $dir);

答案2

最终,我想从文件夹和文件名中删除这些特殊字符。我最终安装了 xcode 和 homebrew 以及 homebrew 的“重命名”组件。这最终允许我为每个字符使用一行代码。

  1. 打开终端并运行xcode-select –install
  2. 按照提示进行安装。
  3. 下载 HomeBrew (https://brew.sh/)通过将以下内容放入终端(需要密码): curl -fsSL -o install.sh https://raw.githubusercontent.com/Homebrew/install/master/install.sh
  4. 使用安装/bin/bash install.sh
  5. 使用安装“重命名”brew install rename
  6. 使用 cd 和 ls 并找到要重命名的文件夹
  7. 该命令将查找单词“foo”并将其重命名为“bar”。 find . -exec rename -s 'foo' 'bar' {} +

完成后,我使用以下命令重命名特殊字符(OneDrive 不支持)。

find . -exec rename -s '"' '2' {} +
find . -exec rename -s '*' '8' {} +
find . -exec rename -s ':' '-' {} +
find . -exec rename -s '<' '(' {} +
find . -exec rename -s '>' ')' {} +
find . -exec rename -s '?' '' {} +
find . -exec rename -s '/' '_' {} +
find . -exec rename -s '\' '-' {} +
find . -exec rename -s '|' '-' {} +
find . -exec rename 's/^ *//' * {} + #remove leading blank spaces
find . -exec rename 's/ *$//' * {} + #remove trailing blank spaces

答案3

Finder 不允许您创建带有冒号的文件。您会收到以下错误: 错误

如果您使用终端创建带有冒号的文件,它会在 Finder 中显示“/”:

削减

请使用 Finder 和/或终端中的文件图片修改您的问题,以便我们尝试重新创建并帮助您。

相关内容