liunx目录文件管理命令

一,目录操作

  1. cd即Change Directory,目录切换

    • “cd ”没有加任何路经表示回到当前用户主文件夹;(同“cd ~”)
    • .代表当前目录,如“cd .”相当于目录没有发生切换;
    • ..代表上一层目录,如需访问与a同级的b目录,可以先回退再进入b,则“cd ../b”;
    • -代表前一个工作目录,“cd -”主要方便打开刚才打开的目录,而两切换间通常没有必然层级关系;
    • ~代表“当前工作的用户”的主文件夹,如当前用户为jack,则“cd ~”则会进入到“/home/jack”下;而root用户的主文件夹路径为“/root”
    • ~account代表进入到“account”用户的主文件夹下,如“cd ~mike”则会进入到“/home/mike”;(注意,”cd ~”和”cd ~account”都只是进入相应的文件夹中,而当前用户并未发生切换);
    • 注意:所有目录下都会存在“.”和“..”这两个目录,代表此层和上层;
    • Linux中,根目录“/”下也存在“.”和“..”两个目录,不过这两个目录指向的都是“/”自身;
  2. pwd 即Print Working Directory,显示当前目录的完整路径

    • 当目录连接链接时,pwd显示是连接路径,pwd -p显示实际路径;
  3. mkdir即make Directory,新建目录(注意不是新建文件)

    • “mkdir newDir”;
    • “mkdir -p dir/dir1/dir2”,mkdir不带-p参数时,不能一次完成多级目录的创建,-p参数允许多级目录递归创建起来;
    • “mkdir -m 711 newDir”,mkdir不带-m参数时,目录权限为系统默认权限,-m允许对新目录自设定权限;
  4. rmdir,删除空目录

    • rmdir只能删除空目录,不能用来删除具体文件;
    • rmdir只能删除空目录,如果目录下仍存在目录或文件,则删除不成功;
    • rmdir /test/test1/test2 ,若test2目录下为空,则可通过这种将路径写到底的方式删除test2,注意这种方位只能删除test2,而test2的上级目录都不受影响;
    • rmdir -p /test/test1/test2 ,能连同 删除test,test1,test2,但前提是这条路径链中没有其他文件或目录(注意不能有其他目录和文件!!!),即test中不能有除了test1外不能有其他目录或文件,同理test1中也只能含test2;
    • 综上,rmdir只能删除单个空目录,rmdir -p只能删除单链路径的所有目录;
    • 对于有内容的目录则只能用“rm -r test”删除了;(rm test.txt 用来删除文件,不能输出目录;加入-r属性,才可删除目录即rm -r testDir);

二,执行文件路径的变量:$PATH

  • 以ls命令为例,在执行ls命令时,由于ls命令的文件所在路径为/bin/ls,之所以在任何地方都能执行ls指令,是因为设置了环境变量PATH的原因,用“echo $PATH”显示有哪些路径被定义出来,如下:
    root@WalleIT:~# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

  • 从打印的路径中可以找到/bin,所以当使用ls指令时,系统会找到/bin/ls文件,从而执行ls操作;

  • 当然若将ls复制到某路径,如“/home/test/”,则也可通过“/home/test/ls [-]”来实现ls的相关功能;
  • 向PATH中添加变量,“PATH=”$PATH”:/路径”;
  • 如果在PATH定义的目录中含有多个文件名相同的可执行文件,则先查到的同名命令先被执行;

三,文件与目录的管理

  1. 查看文件与目录 :ls

    • ls -l 包含文件的属性和权限,如:drwxrwxr-x 2 ethan ethanworld 4096 3月 28 16:11 myTest
    • ls -a 全部文件,连同隐藏文件以及“.”和“..”,只显示目录或文件名,不显示具体权限属性;
    • ls -d 仅列出目录本身,而不是列出目录内的文件数据;
    • ls [-] test1 test2 ,ls可同时列出多个文件或目录的信息
  2. 复制命令cp

    • cp -i srcFile dstFile, 若目标文件存在时,-i属性在覆盖时会先访问操作的进行;
    • 默认条件下,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身;所以,对于某些特殊权限的文件,就不能直接以cp复制,而必须加上-a或者-p等可以完全复制文件权限的参数才行
    • cp -p srcFile dstFile,连同文件的属性一起复制过去,而非使用默认属性;
    • cp -r srcFile dstFile,递归持续复制,用于目录的复制行为;
    • cp -s srcFile dstFile,软连接,复制成为符号链接文件(symbolic link),即“快捷方式”文件;
    • cp -l srcFile dstFile,硬连接(hard link),创建硬连接的链接文件,而非复制文件本身;
    • cp -u srcFile dstFile,若dstFile比srcFile旧,才会更新dstFile,即在目标文件与源文件有差异时才会复制,常用于“备份”的工作当中;
    • cp -d srcLinkFile dstLinkFile,对于复制链接文件的情况下,在没有添加任何参数时,cp复制的是源文件,而不是链接文件的属性;若要复制链接文件的属性,则需要-d参数;
    • cp srcf1 srcf2 dstDir,如果源文件有两个以上,则最后一个目的文件一定要是“目录”才行!
  3. 移除命令rm

    • rm -i file ,-i属性即互动模式,在删除前会询问用户是否操作;
    • rm -i fileName*, 通过通用符*的帮忙,将开头为fileName的文件名全部删除,星号表示0到无穷多个任意字符;
    • \rm
    • rm -r dir,递归删除目录,连同子目录也会删除,很危险的指令!
    • rm ./-file-,删除带有“-”符号的文件时,系统会以为“-”后面接的时参数,从而产生误判,所以在带有“-”文件的前面加上“./”避免误判;
  4. 移动/更名命令mv

    • mv -f src dst,focus强制的意思,如果目标文件已经存在,不会询问直接覆盖;
    • mv -i src dst,若目标文件已经存在,就会询问是否覆盖;
    • mv -u src dst,update的意思,测试新旧软件,看看是否需要移动;
    • mv src1 src2 dstDir,如果有多个源文件或目录,则最后一个目标文件一定是“目录”;
    • mv test1 test2,重命名,将test1更改命名为test2;注意,Linux中rename命令能对多个文件名同时重命名,而并非针对单一文件名的更改;

猜你喜欢

转载自blog.csdn.net/WalleIT/article/details/67636480