小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-05-28 / 20 阅读
0
0

Linux目录和文件操作命令01

在Linux中,目录操作命令用于创建、删除、列出和更改目录。以下是一些常用的目录操作命令及其详解:

pwd

pwd(Print Working Directory)命令用于显示当前工作目录的绝对路径。

pwd

cd

cd(Change Directory)命令用于更改当前工作目录。

cd /path/to/directory  # 更改为指定的目录
cd ~                   # 更改为当前用户的主目录
cd ..                  # 更改为当前目录的上一级目录
cd -                   # 更改为上一次的工作目录

ls

ls(List)命令用于列出目录中的内容。

ls                  # 列出当前目录的内容
ls -l               # 以长格式列出详细信息
ls -a               # 列出所有文件,包括隐藏文件(以.开头的文件)

ls -lh              # 以长格式列出并显示文件大小(人类可读)
ls -lt              # 以长格式列出并按修改时间排序
ls /path/to/directory  # 列出指定目录的内容

ls命令是Linux和类Unix系统中用于列出目录内容的命令。它有很多选项,可以用来定制输出的内容和格式。以下是一些常用的 ls命令选项及其详解和例子:

常用选项

  • -l: 以长格式显示文件和目录的详细信息,包括权限、所有者、大小和最后修改时间。可简写为"ll"

    ls -l
    
  • -a: 显示所有文件,包括以 .开头的隐藏文件。

    ls -a
    
  • -h: 与 -l一起使用时,以人类可读的格式显示文件大小(例如,KB、MB)。

    ls -lh
    
  • -s: 显示文件大小。

    ls -s
    
  • -t: 按文件修改时间排序。

    ls -t
    
  • -r: 反转排序结果。

    ls -r
    
  • -d: 仅列出目录本身,而不是目录的内容。

    ls -d /path/to/directory
    
  • -i: 显示每个文件的inode号。

    ls -i
    
  • -S: 按文件大小排序。

    ls -S
    
  • -R: 递归地列出所有子目录的内容。

    ls -R
    

例子

  • 显示当前目录下的所有文件(包括隐藏文件)的详细信息:
    ls -la
    
  • 显示 /etc目录下的所有文件和目录,并以人类可读的格式显示文件大小:
    ls -lh /etc
    
  • 列出当前目录下的所有文件和目录,按文件大小排序:
    ls -lS
    
  • 显示 /var/log目录下的所有文件和目录的inode号:
    ls -i /var/log
    
  • 递归地列出 /home/user目录及其所有子目录的内容:
    ls -R /home/user
    

ls命令是Linux中使用频率非常高的命令之一,掌握它的各种选项可以帮助你更有效地浏览和管理文件系统。

其他选项

  • -A: 列出所有文件,除了 ...

    
    ls -A
    
    
  • -F: 在目录名称后添加 /,在可执行文件名称后添加 *

    
    ls -F
    
    
  • -G: 根据文件组信息进行彩色输出。

    
    ls -G
    
    
  • -L: 显示符号链接指向的文件的信息。

    
    ls -L
    
    
  • -n: 以数字UID和GID代替用户名和组名。

    
    ls -n
    
    
  • -p: 在目录名称后添加 /

    
    ls -p
    
    
  • -q: 将不可打印的字符以 ?代替。

    
    ls -q
    
    
  • -U: 不排序输出,按照目录中的顺序显示。

    
    ls -U
    
    
  • --color: 控制是否使用颜色输出,默认情况下,ls会根据文件类型使用不同的颜色。

    
    ls --color
    
    
  • --time: 控制显示的时间字段,可以是 atime(访问时间)、ctime(状态改变时间)或 mtime(修改时间)。

    
    ls --time=atime
    
    

例子

  • 列出当前目录下的所有文件和目录,但不显示 ...

    
    ls -A
    
    
  • 列出 /usr/local目录下的所有文件和目录,并在目录名称后添加 /

    
    ls -p /usr/local
    
    
  • 列出 /etc目录下的所有文件和目录,并显示它们的数字UID和GID:

    
    ls -n /etc
    
    
  • 列出当前目录下的所有文件和目录,包括不可打印的字符以 ?代替:

    
    ls -q
    
    
  • 列出 /var/log目录下的所有文件和目录,按访问时间排序:

    
    ls --time=atime -l /var/log
    
    

这些选项可以帮助你根据需要定制 ls命令的输出,以便更好地理解目录的内容和结构。

mkdir

mkdir(Make Directory)命令用于创建一个新的目录。

mkdir directory_name  # 创建一个新目录
mkdir -p path/to/directory  # 创建一个新目录及其所有父目录
mkdir  path/{a,b,c}#这样会在path下创建a,b,c三个文件
mkdir {a,b,c}#会在工作目录下创建a,b,c三个文件
mkdir a,b,c #同上会在工作目录下创建a,b,c三个文件
mkdir path1/a path2/p #会在path1下创建a,在path2创建b

rmdir

rmdir(Remove Directory)命令用于删除一个空目录,删除非空目录会报错。

rmdir directory_name  # 删除一个空目录
rmdir –p 目录名 #–p表示递归删除空目录。如果子目录删除后父目录为空,则同时删除父目录。

在Linux中,mkdir命令可以用来创建一个或多个目录。如果你想要一次性创建多个目录,有几种方法可以做到这一点。

方法一:使用多个 mkdir命令

你可以连续使用多个 mkdir命令来创建多个目录。例如:

mkdir directory1
mkdir directory2
mkdir directory3

方法二:使用 mkdir和通配符

如果你要创建的目录名称遵循某种模式,你可以使用通配符。例如,如果你想要创建以数字1到3结尾的目录,可以这样做:

mkdir directory{1,2,3}
mkdir a b c 

这将会创建 directory1directory2directory3这三个目录。

方法三:使用 mkdir-p选项

如果你想要创建一个目录树,即同时创建多个嵌套的目录,可以使用 -p(--parents)选项。例如:

mkdir -p path/to/directory1/path/to/directory2

这将会创建 path/to/directory1path/to/directory1/path/to/directory2这两个目录,如果它们不存在的话。

方法四:使用循环

如果你有一个目录列表,你可以使用循环来创建每个目录。例如,使用 for循环和 printf命令结合 mkdir

for i in {1..3}; do mkdir "directory$i"; done

或者,如果你有一个文本文件,其中包含了要创建的目录列表:

while read dir; do mkdir "$dir"; done < directories.txt

其中 directories.txt文件内容可能是:

directory1
directory2
directory3

这些方法可以让你高效地创建多个目录,根据你的具体需求选择合适的方法。

rm

rm(Remove)命令用于删除文件和目录。

rm file_name  # 删除一个文件
rm -i删除文件或目录时询问用户是否删除
rm -r directory_name  # 递归删除一个目录及其所有内容
rm -f file_name  # 强制删除文件,不提示确认
rm -rf directory_name  # 强制递归删除目录及其所有内容,不提示确认

rm未指定选项是,默认相当于"–i"选项,若删除目录,必须使用"–r选项"。使用"rm –rf 目录名"命令可代替"rmdir –p 目录名"命令,此时无论目录是否为空,都会在没有任何提示下的情况下删除整个目录树,在实际中要谨慎使用。

rm命令在Linux和类Unix系统中用于删除文件和目录。这个命令非常强大,因为它可以删除系统中的任何文件或目录,包括那些可能会导致系统无法启动的文件。因此,使用 rm命令时需要格外小心。

基本语法

rm [选项] 文件名

默认选项

  • -i: 交互式模式。在删除文件之前,会提示用户确认。

    rm -i /path/to/file
    
  • -r, --recursive: 递归删除目录及其子目录和文件。

    rm -r /path/to/directory
    
  • -f, --force: 强制删除文件,不提示确认。

    rm -f /path/to/file
    
  • -v, --verbose: 显示详细信息,包括删除的文件列表。

    rm -v /path/to/file
    

注意事项

  1. 谨慎使用rm命令是删除文件的工具,一旦删除,文件就无法恢复。因此,在删除文件之前,请确保这是你想要的操作。
  2. 使用交互式模式:为了防止意外删除重要文件,建议在删除文件之前使用 -i选项。
  3. 使用递归删除:如果你想删除一个目录及其所有内容,使用 -r--recursive选项。
  4. 避免使用 -f选项:除非你确定你想要删除文件,并且不希望被提示确认,否则避免使用 -f选项。
  5. 备份重要文件:在删除重要文件之前,总是先备份。
  6. 了解文件系统:在删除文件之前,了解文件系统的布局,以确保不会删除系统文件或启动文件。
  7. 避免误操作:在删除文件之前,仔细检查文件路径和名称。
  8. 使用 rmdir命令删除空目录:如果你想删除一个空目录,使用 rmdir命令,而不是 rm命令。
  9. 注意权限:确保你有足够的权限来删除指定的文件或目录。
  10. 考虑使用 trash-cligtk-trash等工具:这些工具提供了一个更安全的删除文件的方式,将文件移动到一个回收站中,而不是直接删除。
    这些注意事项可以帮助你更安全地使用 rm命令,并避免意外删除重要文件。

cp

cp(Copy)命令用于复制文件和目录。

cp source destination  # 复制文件或目录
cp -r directory_name new_directory_name  # 递归复制目录

cp命令在Linux中用于复制文件和目录。以下是一些常用的 cp命令选项及其解释和例子:

常用选项

  • -r, --recursive: 递归复制目录及其子目录和文件。

    cp -r /source/directory /destination/directory
    
  • -v, --verbose: 显示详细的复制过程。

    cp -v /source/file /destination/file
    
  • -p, --preserve: 保持源文件的属性(如权限和时间戳)。

    cp -p /source/file /destination/file
    
  • -d: 复制符号链接本身,而不是链接指向的文件。

    cp -d /source/symlink /destination/symlink
    
  • -a, --archive: 归档模式,相当于 -dR --preserve=all

    cp -a /source/directory /destination/directory
    
  • -f, --force: 如果目标文件已存在,覆盖它而不提示。

    cp -f /source/file /destination/file
    
  • -i, --interactive: 在覆盖已存在的目标文件之前提示用户确认。

    cp -i /source/file /destination/file
    
  • -n, --no-clobber: 不要覆盖已存在的目标文件。

    cp -n /source/file /destination/file
    
  • --strip-trailing-slashes: 删除源路径末尾的斜杠。

    cp --strip-trailing-slashes /source/directory/ /destination/directory
    

例子

  • 复制单个文件到另一个目录:
    cp /source/file.txt /destination/directory
    
  • 递归复制一个目录及其所有内容到另一个位置:
    cp -r /source/directory /destination/directory
    
  • 复制文件并保持文件的权限和时间戳:
    cp -p /source/file.txt /destination/file.txt
    
  • 使用归档模式复制目录,保持所有文件属性:
    cp -a /source/directory /destination/directory
    
  • 强制复制文件,即使目标文件已存在:
    cp -f /source/file.txt /destination/file.txt
    
  • 在复制文件前提示用户确认,如果目标文件已存在:
    cp -i /source/file.txt /destination/file.txt
    

这些选项可以帮助你根据需要定制 cp命令的行为,以便更好地控制文件的复制过程。

mv

mv(Move)命令用于移动文件和目录,也可以用于重命名文件和目录。

mv source destination  # 移动文件或目录
mv file_name new_file_name  # 重命名文件
mv directory_name new_directory_name  # 重命名目录

mv(Move)命令在Linux和类Unix系统中用于移动文件和目录,或者重命名文件和目录。这个命令非常实用,因为它是文件系统管理中一个常用的操作。

基本语法

mv [选项] 源文件 目标文件

常用选项

  • -i: 交互式模式。如果目标文件已存在,会提示用户确认是否覆盖。

    mv -i /source/file /destination/file
    
  • -n, --no-clobber: 目标文件已存在时不覆盖,与 -i选项效果相同。

    mv -n /source/file /destination/file
    
  • -v, --verbose: 显示详细信息,包括移动的文件列表。

    mv -v /source/file /destination/file
    
  • -f, --force: 强制移动文件,不提示确认。

    mv -f /source/file /destination/file
    
  • -u, --update: 仅在源文件比目标文件新或目标文件不存在时更新目标文件。

    mv -u /source/file /destination/file
    
  • -t, --target-directory=DIR: 移动文件到指定目录。

    mv -t /destination/directory /source/file
    
  • -S, --suffix=SUFFIX: 添加一个后缀到目标文件名。

    mv -S ".bak" /source/file /destination/file
    

例子

  • 移动文件:
    mv /source/file /destination/file
    
  • 重命名文件:
    mv /source/file /destination/new_file
    
  • 移动目录:
    mv /source/directory /destination/directory
    
  • 重命名目录:
    mv /source/directory /destination/new_directory
    
  • 交互式移动文件,如果目标文件已存在会提示确认:
    mv -i /source/file /destination/file
    
  • 强制移动文件,不提示确认:
    mv -f /source/file /destination/file
    

这些选项可以帮助你根据需要定制 mv命令的行为,以便更好地控制文件的移动和重命名过程。

touch

touch命令用于创建一个空文件,或者更改文件的访问和修改时间。

touch file_name  # 创建一个新文件
touch -a file_name  # 更改文件的访问时间
touch -m file_name  # 更改文件的修改时间
touch -d 2021–10–10 file_name #设置文件的读取时间和修改时间

chmod

chmod(Change Mode)命令用于更改文件或目录的权限。

chmod mode file_name  # 更改文件或目录的权限
chmod -R mode directory_name  # 递归更改目录及其内容的权限

其中 mode是一个三位的八进制数或符号表示法,用于指定所有者、组和其他用户的读、写和执行权限。
这些命令是Linux目录操作的基础,掌握它们对于有效管理Linux文件系统至关重要。

file命令

file命令是Linux和类Unix系统中用于检测文件类型的命令。它读取文件内容并尝试确定文件类型,然后输出文件名和文件类型。这个命令对于文件管理非常有用,尤其是在不知道文件类型的情况下。

基本语法


file [选项] 文件名

常用选项

  • -b, --brief: 只输出文件类型,不输出文件名。

    
    file -b /path/to/file
    
    
  • -c, --check: 只检查文件是否损坏,不输出文件类型。

    
    file -c /path/to/file
    
    
  • -C, --cache: 使用缓存中的信息,而不是读取文件内容。

    
    file -C /path/to/file
    
    
  • -d, --directory: 列出目录内容。

    
    file -d /path/to/directory
    
    
  • -f, --mime-type: 输出MIME类型,而不是文件类型。

    
    file -f /path/to/file
    
    
  • -F, --mime-encoding: 输出MIME编码类型,而不是文件类型。

    
    file -F /path/to/file
    
    
  • -L, --dereference: 解析符号链接,并检测链接指向的文件。

    
    file -L /path/to/symlink
    
    
  • -N, --no-mime-type: 不输出MIME类型。

    
    file -N /path/to/file
    
    
  • -o, --old-style: 使用旧风格的输出格式。

    
    file -o /path/to/file
    
    
  • -p, --prefer-pattern: 使用模式匹配,而不是MIME类型。

    
    file -p /path/to/file
    
    
  • -s, --silent: 不输出文件类型。

    
    file -s /path/to/file
    
    
  • -V, --version: 显示版本信息。

    
    file -V
    
    

例子

  • 检测文件类型:

    
    file /path/to/file
    
    
  • 检测文件类型并输出MIME类型:

    
    file -f /path/to/file
    
    
  • 检测符号链接指向的文件类型:

    
    file -L /path/to/symlink
    
    
  • 检测目录内容:

file -d /path/to/directory

评论