我想知道如何设置我的目录以从搜索中排除某个子目录
基本上如果使用./myprogram -exclude [FOLDER]
我想从我以后的所有搜索中排除子目录
让我们说我们有一个名为TEST的测试目录
TEST
>子目录/ file3.tex
> FILE1.TXT
> file2.pdf
所以我的程序看起来像这样
#!bin/bash
if [ $1 == "-exclude" ]
then
DIR="$PWD"
EXCLUDED="$2"
if [ -d "$EXCLUDED" ]
then
DIR=`find $DIR -type d ! -path "$EXCLUDED"`
# this actually works will only write the root directory TEST
fi
#However, when I do then
FILES=`find "$DIR" -type f`
echo "$FILES"
# I get also the "subdirectory included which should not be happening"
任何设置它的想法,所以我不必手动将每个find命令更改为复杂的-pruning和-o,只使用我的DIR排除指定的子目录?
从技术上讲,我知道为什么会发生这种情况,因为DIR被设置为根目录,因为find $DIR -type d ! -path $EXCLUDED
仅返回root(TEST),因为当我使用find $DIR -type f
时它会执行命令find TEST -type f
,这显然甚至包括我想要排除的目录,但不知怎的,我正在寻找是否有可能以某种方式改变DIR的路径以排除子目录。有什么想法吗?
答案 0 :(得分:0)
好的,所以我找到了答案,不完全是我想要的,但我想用find命令,我们可以修改目录而不是
EXCLUDED="*/""$2""/*"
并设置FILES=$(find "$DIR" -type f ! -path "$EXCLUDED")
并且它可以正常工作