find:-type的参数应该只包含一个字母

时间:2012-05-20 00:41:20

标签: bash shell

#!/bin/bash 


echo "please enter a path where to search:"
read myPath

touch --date "2012-01-01" /tmp/start
touch --date "2012-01-01" /tmp/end

until  [ "$myPath" = $(pwd) ] 
do
echo "please enter a correct path where to search:"
read myPath
done


RESULT= "$(find  $HOME "-type -f" -newer /tmp/start -not -newer tmp/end)"

echo $RESULT

当我试图执行它时,我得到了:

find: Arguments to -type should contain only one letter
TimeStamp: line 17: : command not found

3 个答案:

答案 0 :(得分:2)

对于初学者,为什么在{/ 1}} 之外引号?它就是 -type -f不是-type f-type -f之前没有破折号)

试试这个:

f

答案 1 :(得分:1)

我会试试这个:

"$(find $HOME -type f -newer /tmp/start -not -newer tmp/end)"

答案 2 :(得分:1)

你有:

RESULT= "$(find  $HOME "-type -f" -newer /tmp/start -not -newer tmp/end)"

find:-type的参数应该只包含一个字母

有几件事:删除-type -f周围的引号。我不知道你为什么把它们放在那里。 -type参数的正确参数应为f而不是-f

TimeStamp:第17行::找不到命令

您已对/tmp/end进行了操作,但您正在查看tmp/end。这与$PWD/tmp/end的说法相同。您需要在前面使用斜杠将其锚定到目录结构的根目录。您需要/tmp/end而不是tmp/end

尝试:

RESULT= "$(find "$HOME" -type f -newer /tmp/start -not -newer /tmp/end)"