Linux

如何使用 ls 而不是 find?

  • October 18, 2017

find用來循環一些文件,目標是具有這種結構的文件:

EDI_2016-03-03_09-45-09_TARGET-TYPE_4830_453a2cbb-b8d4-4982_6549_6116_xazfzeg.PDF

目標是找到以中間開頭EDI_並包含TARGET-TYPE在中間的文件,使用 find 命令是:

find . -name "EDI_*_TARGET-TYPE*"

而且由於我要使用帶有循環的輸出,因此我不想使用find和使用ls(我在帶有空格和查找的文件方面遇到了很多問題)。

這有效:ls EDI_

  • 不起作用:ls EDI_*_TARGET-TYPE*
  • 這不起作用:ls "EDI_*_TARGET-TYPE*"
  • 這不起作用:ls 'EDI_*_TARGET-TYPE*'

而且我真的不知道為什麼,如果有人可以將find命令翻譯給我,那就太好了。

$ touch EDI_2016-03-03_0945-09_TARGET-TYPE_4830_453a2cbb.pdf
$ touch EDI_2016-03-03_0945-09_TARGET-TYPE_4830hhh_453a2cbb.pdf
$ ls EDI_*_TARGET-TYPE*
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830_453a2cbb.pdf
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830hhh_453a2cbb.pdf

為我工作。Bash shell Ubuntu 最近的 LTS。

我會做什麼:

for file in EDI_*_TARGET-TYPE*; do
   do_something "$file"
done

引用自:https://unix.stackexchange.com/questions/398865