如何在 mv 和 cp 等命令中区分文件和目录?

如何在 mv 和 cp 等命令中区分文件和目录?

比如我只想移动文件夹,但文件不移动,怎么输入这条命令?


(小弟只会作仅“显示”文件夹的工作,呵呵 - ls -l|grep ^d|)

还望高手指教
那你为什么不新建这个目录?只移动目录没有意义:
$mkdir /directory
或做一个软链接:
$ln -s /source /target
你的意思是只想移动当前文件夹的子目录 但是不想移动当前文件夹的文件是吧

那简单用下面的命令就OK了

mv $(ls -l | grep ^d | awk -F "  " '{print $9}')  目标文件夹
awk 命令中的-F是指定分隔符 这里指定的是空格
'{print $9}' 这个参考的意思是 把输入的文件的每一行 先用-F指定的符号分(空格)隔开 并把分隔的数据按先后顺序分别存放到$1 到$9 的变量里
$0是所有变量的值,没有分隔的值
$1是文件类型是读写权限(这里相对ls -l 的输出而言),
$2是inode连接数
...
$9是文件名或是文件夹名了或是设备名了

整个命令就是先输出详细的子目录和文件的信息,然后用grep提取出目录,awk报表生成命令提取文件名字, 然后用$()命令捕获输出的数据 再用mv 以后不用说了吧
[[ -d $file ]]
[[ -f $file ]]
of
find -type f
find -type d