QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 997|回复: 3

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

[复制链接]
发表于 2005-5-28 02:28:18 | 显示全部楼层 |阅读模式
比如我只想移动文件夹,但文件不移动,怎么输入这条命令?


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

还望高手指教
发表于 2005-5-28 11:11:03 | 显示全部楼层
那你为什么不新建这个目录?只移动目录没有意义:
$mkdir /directory
或做一个软链接:
$ln -s /source /target
回复

使用道具 举报

发表于 2005-5-28 11:42:41 | 显示全部楼层
你的意思是只想移动当前文件夹的子目录 但是不想移动当前文件夹的文件是吧

那简单用下面的命令就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 以后不用说了吧
回复

使用道具 举报

发表于 2005-5-28 12:06:44 | 显示全部楼层
[[ -d $file ]]
[[ -f $file ]]
of
find -type f
find -type d
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-10-2 01:41 , Processed in 0.054972 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表