目录即文件夹:在其他操作系统(如 Microsoft Windows)中,目录有时被称为文件夹
示例
mkdir -p /home/matt/work/maths
这将在 matt 的家目录 下创建 “work” 和 “maths” 目录(如果 matt 的家目录 不存在 ,也会自动创建)。
mkdir foo
移除/删除 文件或目录。你可以将标准通配符 与此命令一起使用,详见 第 20 章中标准通配符(globbing 模式) 部分。
命令语法
rm -options file_or_folder
当然,你可以使用标准通配符来删除多个文件或多个 目录 和文件。
使用 -R 或 -r 选项进行递归删除,这将移除 子目录内的所有内容。 也可以尝试 -f 选项来强制 删除(当你不希望被提示时很有用)。
移除空 目录。如果你想移除 包含文件的目录,请键入 “rm -R directory”,请阅读上文关于 rm -R 的信息
命令语法
rmdir directory
mv filename1 filename2
mv original_file_or_folder new_location
请注意,此命令可以使用标准通配符 第 20 章中标准通配符(globbing 模式) 部分来移动 文件(不适用于重命名)。
移动和重命名:请注意,你也可以在单个命令中移动和重命名文件。区别在于目标(右侧),你需要将文件名更改为文件的新名称。
例如,键入
mv /etc/configuration.txt /home/joe/backupconfig这将把 "configuration.txt" 文件移动到 /home/joe/ 并将其重命名为 "backupconfig"
复制文件。有许多 有用的选项,例如 -R (或 -r),它 递归地 复制 目录和子目录。
命令语法
cp -options file_or_files new_location
示例
cp file1 file2
简单地将 file1 复制到 file2 (在同一目录下)。
cp /tmp/file1 ~/file2 /mnt/win_c
其中最后一个 选项是要复制到的目录。上面的示例将文件系统中不同区域的 两个文件复制到 /mnt/win_c
cp -R directory_and_or_files new_location
此命令将复制目录(和所有子目录)和/或文件到 new_location
请注意,此命令可以使用标准通配符 第 20 章中标准通配符(globbing 模式) 部分来复制 多个文件。
你可能还想尝试 “-u” 选项,当移动 大型目录 时,此选项仅在源 文件比目标 文件更新 时,或者目标文件根本不存在 时才进行复制。
硬链接被认为是文件指针 (数量通过键入 ls -l 列出)。每个硬链接 都是对文件的引用。
只有当所有硬链接 都被删除时,文件本身才会消失。 如果你删除了原始 文件,并且存在指向它的硬链接 ,则原始文件将保留。
示例
ln target_name link_name
这将创建一个名为 link_name 的指向 target_name 的 “硬链接”,你需要删除这两个链接才能移除 该文件。
符号链接通过键入 “ln -s” 创建。 当你移除 原始 文件时,符号链接 会变成断开的链接。 符号链接 类似于 Windows “快捷方式”。
符号 链接的优点 是目标可以是另一个文件系统上的内容,而硬链接 只能存在于 同一文件系统上。
例如
ln -s target_name link_name
这将创建一个指向 “target_name” 的名为 “link_name” 的符号链接,如果你删除原始 文件,符号链接将无法工作(它会变成一个断开的 链接)。
安全地移除 文件,首先覆盖 它。防止 数据 被软件 (甚至大多数硬件)恢复。 使用 shred 时请务必小心,因为你可能永远无法 检索 你已运行 该应用程序 的数据。
例如
shred -n 2 -z -v /dev/hda1
“这告诉 shred,用随机 数据 覆盖分区 2 次 (- n 2),然后通过用零 覆盖 (-z) 并显示 进度 (-v) 来完成它。当然,将 /dev/hda1 更改为正确的分区 。每个过程 可能需要一些时间, 这就是为什么我将其设置为仅执行 2 次随机 过程 而不是默认的 25 次。当然,你可以根据你的特定偏执程度 和你有多少 时间来调整此数字。”
由于 shred 在如此低的级别上写入, 因此文件系统 在分区上是什么类型实际上并不重要——一切都将无法恢复。 一旦 shred 完成, 你可以关闭机器 并安心地出售 或扔掉 驱动器。
...然而,即使 shredding 设备 也并非总是完全可靠的。 例如,大多数磁盘 都将坏扇区 对应用程序不可见地 映射出来;如果坏扇区 包含敏感 数据, `shred' 将无法 销毁 它。[ shred 信息页 ]。”[1]
Shredding 文件并非适用于所有文件系统:请注意,正如 shred 手册页中所提到的(请参阅手册和 info 页以获取更多信息)。shred 在日志结构或日志式文件系统(如 JFS、ReiserFS、XFS、Ext3 和许多其他现代文件系统)上无法正常工作 。
使用 shred 的替代方案:shred 在文件系统上运行时存在缺点。首先,由于它必须安装,因此你无法在你的操作系统文件系统上运行 shred,你也无法在 Windows 机器上轻松使用 shred,因为你无法在此机器上安装 shred。
你可能想尝试诸如 DBAN 项目之类的替代方案,该项目创建自启动软盘,可以完全擦除机器的硬盘。
你可能还想了解 chattr 如何帮助 你在移除文件后进行 shredding (它与 shred 有类似的问题 ,仅适用于 ext2 和 ext3 风格的文件系统...),请参阅 第 14 章中文件权限 部分。
显示关于文件大小的 信息。使用 du filename 显示 特定 文件的大小。 如果你在目录上使用它,它将显示目录中文件和每个子目录的大小信息。
在目录上使用 -hs 选项将显示目录 及其所有子目录 的总大小。
命令语法
du -options file_directory_or_files
示例
du -hs *
此命令将列出 当前目录中所有文件的大小,并列出子目录的大小。 它将以人类可读的 大小 列出内容,使用 1024 Kb 为一个兆字节, M 代表兆字节, K 代表千字节 等等。
尝试 找出文件类型, 例如,它可能会说它是:二进制文件、 图像 文件(它会说是 jpeg、 bmp 等)、ASCII 文本、 C 头 文件和许多其他类型的文件,这是一个非常有用的实用程序。
命令语法
file file_name
告诉你关于文件的详细 信息, 包括 inode 编号、创建/访问日期。还有许多高级 选项和用途。
对于简单使用,键入
stat file
以非常低的 级别复制数据,可用于创建磁盘 的副本 第 20 章中复制磁盘 部分,以及许多其他内容(例如 CD 镜像 文件)。
dd 还可以对文件执行 转换,并更改写入 文件时使用的块 大小。
命令语法,请注意块 大小和计数 是可选的, 你可以使用文件而不是设备...
请注意: dd 是一个高级且难以使用的命令。它也非常强大,因此请小心使用它
命令语法
dd if=/dev/xxx of=/dev/xxx bs=xxxx count=x
警告 |
命令 dd 用于在非常低的级别上工作。它可以用于覆盖重要信息,例如你的主引导记录或硬盘的各种重要部分。使用时请务必小心(尤其是在使用设备而不是文件时)。 |
此命令用于创建空 文件,只需执行 touch file_name 即可。它也用于更新 文件上的时间戳。
touch -t 05070915 my_report.txt[2]
此命令将更改 my_report.txt 上的时间戳,使其看起来 像你在 9:15 创建了它。前四位数字 代表 5 月 7 日 (0507),采用 MM-DD(美式)格式,后四位数字 (0915)代表时间, 早上 9:15。
除了使用纯 数字来更改 时间外,你还可以使用类似于 date 工具的选项。例如
touch -d '5 May 2000' some_file.txt
你也可以使用 --date= 而不是 -d。 另请查看 第 8 章中日期/时间/日历 部分下的 date 命令,以获取关于使用 -d 和 --date= 的示例 (使用 -d 或 --date 时,日期 部分的语法 完全相同)。
使用 -b xx 选项 拆分成 xx 字节, 也可以尝试 -k 表示千字节, 以及 -m 表示兆字节。 你可以使用它来拆分文本文件和任何其他文件... 你可以使用 cat 来重新组合 这些文件。
如果你必须将某些内容传输 到软盘 ,或者你希望将文本文件分成特定大小, 这可能很有用。
命令语法
split -options file
这将把输入 文件拆分成每个文件 1000 行 输入(这是默认值...),并输出 (使用上面的示例),以输入名称 file,“fileaa”(文件的第一部分 ),“fileab”(文件的第二部分 ),“fileac”(文件的第三部分 )等等,直到文件没有剩余部分可以拆分。
[1] | 此信息(如引用的)来自 “拜托,为了所有可以恢复的东西,粉碎你的硬盘!” 文章,编号 18,见 参考文献 |
[2] | 此特定命令和解释已(经过编辑)摘自 Linux Online Classroom,有关更多信息,请参见 参考文献 中的 [4]。 |