Unix/Linux编程:文件与目录操作——mkdir、rmdir函数解析

需积分: 7 0 下载量 30 浏览量 更新于2024-08-25 收藏 838KB PPT 举报
"mkdir、rmdir函数 - Unix第五章 文件与目录" 在Unix/Linux操作系统中,`mkdir` 和 `rmdir` 是两个非常重要的命令行工具,用于管理文件系统的目录结构。`mkdir` 用于创建新的目录,而 `rmdir` 用于删除已存在的空目录。 `mkdir` 函数允许用户创建指定路径的目录。其原型为: ```c #include <sys/types.h> #include <sys/stat.h> int mkdir(const char *pathname, mode_t mode); ``` 在这里,`pathname` 是要创建的目录的路径,而 `mode` 参数则用来设置新目录的权限模式。创建目录时,系统会检查指定路径的父目录是否存在且具有适当的访问权限。如果成功创建目录,`mkdir` 函数返回0;否则,返回非零值,并可能设置errno来指示错误原因。 需要注意的是,如果路径中包含中间目录未存在,`mkdir` 默认不会递归创建它们。但可以通过添加 `-p` 或 `--parents` 标志来实现递归创建。 另一方面,`rmdir` 函数用于删除指定路径的空目录。其原型为: ```c #include <unistd.h> int rmdir(const char *pathname); ``` `rmdir` 只能删除空的目录,如果目录非空,操作将失败。同样,如果成功删除目录,`rmdir` 返回0;否则,返回非零值,并通过errno提供错误信息。 在Unix/Linux编程中,理解文件系统的基本结构至关重要。文件系统是层次性的,以倒置树的形式组织,根目录 `/` 是树的顶部。所有文件和目录都从根目录开始,沿着层级向下扩展。例如,`/etc`、`/home` 和 `/usr` 是常见的顶级目录,每个目录下可能还有子目录和文件。 在Unix系统中,文件的概念十分广泛,不仅包括传统的文本和二进制文件,还涵盖了硬件设备(作为字符或块设备文件)、命名管道(FIFOs)和符号链接等特殊文件类型。这种抽象使得系统能够以统一的方式处理各种对象,增强了系统的灵活性和可管理性。 文件的属性信息,如权限、所有者、组、大小和修改时间等,是文件系统管理的关键。通过这些属性,用户可以控制对文件和目录的访问,实现安全和高效的资源管理。例如,`chmod` 命令用于更改文件或目录的权限,`chown` 和 `chgrp` 分别用于改变文件的所有者和组。 总结来说,`mkdir` 和 `rmdir` 在Unix/Linux环境中扮演着至关重要的角色,它们帮助用户动态地构建和维护文件系统的目录结构。理解文件系统的概念和特性对于进行有效的系统级编程和日常系统管理至关重要。

–mkdir: Unknown command Usage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>] [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...] [-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>] [-createSnapshot <snapshotDir> [<snapshotName>]] [-deleteSnapshot <snapshotDir> <snapshotName>] [-df [-h] [<path> ...]] [-du [-s] [-h] [-x] <path> ...] [-expunge] [-find <path> ... <expression> ...] [-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-getfacl [-R] <path>] [-getfattr [-R] {-n name | -d} [-e en] <path>] [-getmerge [-nl] [-skip-empty-file] <src> <localdst>] [-help [cmd ...]] [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]] [-mkdir [-p] <path> ...] [-moveFromLocal <localsrc> ... <dst>] [-moveToLocal <src> <localdst>] [-mv <src> ... <dst>] [-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>] [-renameSnapshot <snapshotDir> <oldName> <newName>] [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...] [-rmdir [--ignore-fail-on-non-empty] <dir> ...] [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]] [-setfattr {-n name [-v value] | -x name} <path>] [-setrep [-R] [-w] <rep> <path> ...] [-stat [format] <path> ...] [-tail [-f] <file>] [-test -[defsz] <path>] [-text [-ignoreCrc] <src> ...] [-touchz <path> ...] [-truncate [-w] <length> <path> ...] [-usage [cmd ...]] Generic options supported are: -conf <configuration file> specify an application configuration file -D <property=value> define a value for a given property -fs <file:///|hdfs://namenode:port> specify default filesystem URL to use, overrides 'fs.defaultFS' property from configurations. -jt <local|resourcemanager:port> specify a ResourceManager -files <file1,...> specify a comma-separated list of files to be copied to the map reduce cluster -libjars <jar1,...> specify a comma-separated list of jar files to be included in the classpath -archives <archive1,...> specify a comma-separated list of archives to be unarchived on the compute machines The general command line syntax is: command [genericOptions] [commandOptions]

2023-06-06 上传

-mkdir: java.net.UnknownHostException: CentOS764FCDW Usage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>] [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] <path> ...] [-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>] [-createSnapshot <snapshotDir> [<snapshotName>]] [-deleteSnapshot <snapshotDir> <snapshotName>] [-df [-h] [<path> ...]] [-du [-s] [-h] [-v] [-x] <path> ...] [-expunge] [-find <path> ... <expression> ...] [-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-getfacl [-R] <path>] [-getfattr [-R] {-n name | -d} [-e en] <path>] [-getmerge [-nl] [-skip-empty-file] <src> <localdst>] [-head <file>] [-help [cmd ...]] [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]] [-mkdir [-p] <path> ...] [-moveFromLocal <localsrc> ... <dst>] [-moveToLocal <src> <localdst>] [-mv <src> ... <dst>] [-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>] [-renameSnapshot <snapshotDir> <oldName> <newName>] [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...] [-rmdir [--ignore-fail-on-non-empty] <dir> ...] [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]] [-setfattr {-n name [-v value] | -x name} <path>] [-setrep [-R] [-w] <rep> <path> ...] [-stat [format] <path> ...] [-tail [-f] [-s <sleep interval>] <file>] [-test -[defsz] <path>] [-text [-ignoreCrc] <src> ...] [-touch [-a] [-m] [-t TIMESTAMP ] [-c] <path> ...] [-touchz <path> ...] [-truncate [-w] <length> <path> ...] [-usage [cmd ...]] Generic options supported are: -conf <configuration file> specify an application configuration file -D <property=value> define a value for a given proper

2023-05-25 上传