相当新的命令行,所以请耐心等待。
我应该在/usr/local
中找到以数字结尾的目录。我已经设法列出了以下目录:
ls -d */
但是当我尝试使用带有通道管道的任何东西时:
find -name
grep
look
没有显示输出。我甚至尝试使用'*'通配符进行搜索,但没有显示任何内容。
我出错的任何想法?
答案 0 :(得分:1)
find命令应该能够做你想做的事情,从它的外观来看你就是这样:
find / -type d -name <directory_name>
这将查找具有您从根目录指定的名称的任何目录。如果您按上面显示的那样运行命令,我认为缺陷是您没有指定开始搜索的目录。如果需要指定任何其他参数,也可以使用手册页:
答案 1 :(得分:1)
find /usr/local -type d -name '*[0-9]'
这一切都在一个;在/usr/local/
下查找名称以数字结尾的目录(并隐式打印结果)。
使用ls
的代码可能需要如下所示:
cd /usr/local || exit 1
ls -d */ | grep '[0-9]/$'
这将列出名称末尾带有斜杠的目录,因此您需要搜索其中有数字后跟斜杠和名称末尾的名称。这与find
命令之间的一个区别是ls
仅在/usr/local
中立即列出目录,而find
将搜索目录层次结构。如果您不希望find
向下搜索层次结构,请说明:
find /usr/local -maxdepth 1 -type d -name '*[0-9]'
(如果您将-maxdepth 1
放在最后,find
的某些版本会对此产生误解并抱怨。)
答案 2 :(得分:0)
find "/path/to/some/dir/*[0-9]" -type d -maxdepth 1
答案 3 :(得分:0)
ls -l /path/to/some/dir | grep "^d" | awk '{print $9}'
答案 4 :(得分:0)
for file in /path/to/some/dir/*; do \
if [[ -d $file ]]; then \
echo $file; \
fi \
done