将find $ PWD的输出放在一列中

时间:2014-04-02 04:33:38

标签: bash shell

我试图将find $PWD的输出(当前目录和子目录中的所有文件和目录)放在一列中......现在它将所有内容打印成一行。 /> 一个例子:

/Users/blah /Users/blah/blah /Users/blah/blah/blah.txt

我需要它

/Users/blah
/Users/blah/blah
/Users/blah/blah/blah.txt

谢谢!

2 个答案:

答案 0 :(得分:1)

在我的计算机上find $PWD每行也会提供一个文件,正如Yohanes Khosiawan所说。

但是试着用

强制它
find $PWD -printf "%p\n"

摘自man find

   -printf format
      print format on the standard output, interpreting '\'  escapes  and  '%'  directives.   Field
      widths  and  precisions can be specified as with the 'printf' C function.

使用ls

的相似的类似
ls -1

从帮助中摘录:

-1 -- (The numeric digit "one")
      Force output to be one entry per line. 
      This is the default when output is not to a terminal.

答案 1 :(得分:1)

我的通灵能力告诉我你在变量中捕获这些数据或者通过echo传递它:

var=$(find $PWD)
echo $var
--or--
echo $(find $PWD)

这会导致您看到的效果,因为您忽略了引用。你应该总是双引几乎所有变量和命令替换:

var=$(find "$PWD")
echo "$var"
--or--
echo "$(find "$PWD")"

这将打印捕获的数据,使用换行符而不是空格。