int ls_prepare(char *w,int aflag,int lflag) //从后面看w是路径
{ //块语句
struct stat buf //结构体保存文件信息,在头文件<sys/stat.h>
char name[100] //数组
DIR *dir //目录结构体没有必要去研究知道哪些函数用他即可
struct dirent *pdr //目录信向息结构体, 里面保存文件信息,包括inode,文件名,偏移量...
目测这里应该少了代码因为buf没有初始化
if(S_ISDIR(buf.st_mode)) //判断是否为一个目录
{
dir = opendir(w) //打开路径w
while ((pdr = readdir(dir))!=NULL) //然后读取目录
{
if(pdr->d_name[0]=='.') //如果目录是'.'和隐藏文件(linux隐藏文件'.'打头)
continue //那么跳过
memset(name,0,100) 情况name字符串
strcpy(name,w) 把路径复制到字符串中
strcat(name,"/") 字符串拼接
strcat(name,pdr->d_name) 字符串拼接
do_ls(name,pdr->d_name,lflag) //这个应该就是自己定义ls的名字吧
}
closedir(dir) //关闭目录
}
cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。复制命令的三种情况:
目标文件是一个目录,会将源文件复制到该目录中。 <--你试试看?
目标文件是一个文件,会将源文件覆盖该文件。
目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
参数作用
-p保留原始文件的属性
-d若对象为"链接文件",则保留该"链接文件"的属性
-r递归持续复制(用于目录)
-i若目标文件存在则询问是否覆盖
-a相当于-pdr(p,d,r为上述的参数)
推荐去看看《Linux就该这么学》这本书,简单易懂。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)