我有一个文件夹,里面有子目录和文件。我想确保没有两个目录同名。该怎么做?
答案1
此命令将打印多次出现的目录名称:
find path/to/dir -type d -printf "%f\n" | sort | uniq -d
如果输出为空,则表示没有重复的名称。如果输出不为空,则可以使用以下命令找到重复项的完整路径:
find path/to/dir -type d -name the-name
警告:由于\n
选项中使用了文件名分隔符,如果您在其中嵌入了-printf
一些目录,则此方法将不起作用。希望这是一个可以接受的限制。\n
选项在 GNU 实现中-printf
可用find
,在 Linux 系统上很常见,在 BSD 实现中可能不可用,在 BSD 系统上很常见。如果您find
没有该选项,那么您可以改用这个:
find path/to/dir -type d | awk -F/ '{ print $NF }' | sort | uniq -d