创建目录。使用 mkdir -p 自动创建子目录。
![]() | 目录即文件夹 |
---|---|
在其他操作系统(如 Microsoft Windows)中,目录有时被称为文件夹 |
示例
mkdir -p /home/matt/work/maths |
这将在 matt 的主目录下创建 “work” 和 “maths” 目录(如果 matt 的主目录不存在,也会创建它)。
mkdir foo |
这将在当前路径中创建一个名为 “foo” 的目录。
移除/删除文件或目录。您可以将标准通配符与此命令一起使用 第 20.4.1 节。
命令语法
rm -options file_or_folder |
您当然可以使用标准通配符来删除多个文件或多个目录和文件。
使用 -R 或 -r 选项进行递归删除,这将删除子目录中的所有内容。也可以尝试 -f 选项强制删除(当您不想被提示时很有用)。
![]() | 禁用别名(每次执行) |
---|---|
在某些系统(如 Mandrake)上,别名会将 rm 发送到 rm -i(提示您确认要删除的每个文件)。要覆盖此设置,请使用:\rm -R directory (使用 \ 仅针对本次运行禁用别名) |
删除空目录。如果要删除包含文件的目录,请键入 “ rm -R directory”,请阅读上面关于 rm -R 的信息
命令语法
rmdir directory |
这将仅在目录为空时删除目录,否则将退出并显示错误消息。
将文件或目录移动到新位置或重命名文件/目录。
重命名示例
mv filename1 filename2 |
将 filename1 重命名为 filename2。
要移动文件或目录,只需键入
mv original_file_or_folder new_location |
请注意,此命令可以使用标准通配符 第 20.4.1 节 来移动文件(不用于重命名)。
![]() | 移动和重命名 | |
---|---|---|
请注意,您也可以在单个命令中移动和重命名文件。区别在于目标(右侧),您将文件名更改为文件的新名称。 例如,键入
这会将文件 “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.4.1 节 来复制多个文件。
当移动大型目录时,您可能还想尝试 “-u”,只有当源文件比您要复制到的目标文件更新,或者目标文件根本不存在时,才会复制。
创建文件的链接。有两种类型的链接
硬链接被认为是文件的指针(数量通过键入 ls -l 列出)。每个硬链接都是对文件的引用。
只有当所有硬链接都被删除时,文件本身才会消失。如果您删除原始文件,并且有指向它的硬链接,则原始文件将保留。
示例
ln target_name link_name |
将创建一个名为 link_name 的 “硬链接” 到 target_name,您需要删除这两个链接才能删除该文件。
符号链接通过键入 “ln -s” 创建。 当您删除原始文件时,符号链接会断开,符号链接类似于 Windows “快捷方式”。
符号链接的优点是目标可以是另一个文件系统上的内容,而硬链接只能存在于同一文件系统上。
例如
ln -s target_name link_name |
这将创建一个名为 “link_name” 的符号链接到 “target_name”,如果您删除原始文件,符号链接将无法工作(它变成一个断开的链接)。
通过首先覆盖文件来安全地删除文件。防止数据被软件(甚至大多数硬件)恢复,请在使用 shred 时非常小心,因为您可能永远无法检索您在其上运行应用程序的数据。
例如
shred -n 2 -z -v /dev/hda1 |
“这告诉 shred,用随机数据覆盖分区 2 次 (-n 2),然后用零覆盖它来完成 (-z),并向您显示其进度 (-v)。当然,将 /dev/hda1 更改为正确的分区。每次传递可能需要一些时间,这就是为什么我将其设置为仅执行 2 次随机传递,而不是默认的 25 次。当然,您可以根据您的特定偏执程度和您拥有的时间来调整此数字。
由于 shred 在如此低的级别上写入,因此实际上文件系统是什么类型并不重要——一切都将无法恢复。一旦 shred 完成,您可以关闭机器,安心地出售或丢弃驱动器。
...但是,即使是 shred 设备也并非总是完全可靠的。例如,大多数磁盘都以应用程序不可见的方式映射出坏扇区;如果坏扇区包含敏感数据,`shred` 将无法销毁它。[ shred 信息页 ]。”[1]
![]() | Shredding 文件不适用于所有文件系统 |
---|---|
请注意,正如 shred 手册页中提到的(请参阅手册,最好是信息页以获取更多信息)。 shred 在日志结构化或日志文件系统(如 JFS、ReiserFS、XFS、Ext3 和许多其他现代文件系统)上无法正确工作 |
![]() | 使用 shred 的替代方案 |
---|---|
shred 在文件系统上运行时有其缺点。首先,由于必须安装它,因此您无法在操作系统文件系统上运行 shred,您也无法在 Windows 机器上轻松使用 shred,因为您无法在此机器上安装 shred。 您可能想尝试诸如 DBAN 项目之类的替代方案,该项目创建可自我启动的软盘,可以完全擦除机器的硬盘。 |
您可能还想了解 chattr 如何帮助您在删除文件后 shred 文件(它与 shred 有类似的问题,仅适用于 ext2 和 ext3 样式的文件系统...),请参阅 第 14.2 节。
显示有关文件大小的信息。使用 du filename 显示特定文件的大小。如果您在目录上使用它,它将显示目录中文件和每个子目录的大小信息。
du 的选项(使用 du -option(s))
-c -- 这将使 du 在处理完所有参数后打印总计。
-s -- 汇总每个参数(打印总计)。
-h -- 以 “人类可读” 模式打印事物;例如,打印 1M(兆字节)而不是 1,024,000(字节)。
在目录上使用 -hs 选项将显示目录和所有子目录的总大小。
命令语法
du -options file_directory_or_files |
示例
du -hs * |
此命令将列出当前目录中所有文件的大小,并且将列出子目录的大小,它将以人类可读的大小列出事物,使用 1024 Kb 为 1 兆字节,M 代表兆字节,K 代表千字节等。
尝试找出文件类型,例如,它可能会说它是:二进制文件、图像文件(它会说是 jpeg、bmp 等)、ASCII 文本、C 头文件和许多其他类型的文件,这是一个非常有用的实用程序。
命令语法
file file_name |
告诉您有关文件的详细信息,包括 inode 号码创建/访问日期。还具有许多高级选项和用途。
对于简单使用,键入
stat file |
在非常低的级别上复制数据,可用于创建磁盘副本 第 20.3 节 和许多其他内容(例如 CD 映像文件)。
dd 还可以对文件执行转换,并更改写入文件时使用的块大小。
命令语法,请注意块大小和计数是可选的,您可以使用文件而不是设备...
![]() | 请注意 |
---|---|
dd 是一个高级且难以使用的命令。它也非常强大,因此请小心使用它 |
命令语法
dd if=/dev/xxx of=/dev/xxx bs=xxxx count=x |
![]() | 警告 |
---|---|
命令 dd 用于在非常低的级别上工作。它可以用于覆盖重要信息,例如您的主引导记录或硬盘的各个重要部分。使用时请小心(尤其是在使用设备而不是文件时)。 |
此命令用于创建空文件,只需执行 touch file_name。它也用于更新文件上的时间戳。
touch 可用于更改文件的时间和/或日期
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.1 节 下的 date 命令,以获取有关使用 -d 和 --date= 的示例(date 部分的语法在使用 -d 或 --date 时完全相同)。
将文件拆分成几个较小的文件。
使用 -b�xx 选项拆分成 xx 字节,也可以尝试 -k 表示千字节,-m 表示兆字节。您可以使用它来拆分文本文件和任何其他文件... 您可以使用 cat 重新组合文件。
如果您必须将某些内容传输到软盘或希望将文本文件分成特定大小,这可能会很有用。
命令语法
split -options file |
这将把输入文件拆分成每份 1000 行输入(这是默认值...),并输出(使用上面的示例),输入名称为 file,“fileaa”(文件的第 1 部分),“fileab”(文件的第 2 部分),“fileac”(文件的第 3 部分)等等,直到没有更多文件要拆分。
[1] | 此信息(如引述)来自 “请为了所有可恢复的东西,粉碎您的硬盘!” 一文,编号 18,在 参考书目 中 |
[2] | 此特定命令和解释已(经过编辑)来自 Linux 在线课堂,请参阅 参考书目 中的 [4] 以获取更多信息。 |