ハードリンク:ハードリンクとディレクトリアイテムは同義語であり、ハードリンクの確立には制限があり、パーティションやディレクトリには作成できません。
次のbigfileファイルiノード:12849444リンク:1。
ln bigfile bigfile_link bigfileをハードリンクした後
:iノード:12849444リンク:2
bigfile_link:iノード:12849444リンク:2
リンクプラス1であるため、ハードリンクはディレクトリエントリと同義です。したがって、lnを使用してファイルへのハードリンクを作成するには、現在のディレクトリのディレクトリファイルとディレクトリにディレクトリエントリの追加行を書き込むことが重要です。エントリは、bigfile_linkファイル名:12849444でiノードに関連付けられています。つまり、2つのファイル名は同じiノードに対応します。
mhr@ubuntu:~/work/linux/wenjianxitong/20$ stat bigfile
File: 'bigfile'
Size: 5368709120 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 12849444 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ mhr) Gid: ( 1000/ mhr)
Access: 2020-05-04 09:07:52.395872798 -0700
Modify: 2020-05-04 09:04:27.883813275 -0700
Change: 2020-05-04 09:04:27.883813275 -0700
Birth: -
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$ ln bigfile bigfile_link
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$ stat bigfile
File: 'bigfile'
Size: 5368709120 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 12849444 Links: 2
Access: (0600/-rw-------) Uid: ( 1000/ mhr) Gid: ( 1000/ mhr)
Access: 2020-05-04 09:07:52.395872798 -0700
Modify: 2020-05-04 09:04:27.883813275 -0700
Change: 2020-05-05 01:46:59.918698615 -0700
Birth: -
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$ stat bigfile_link
File: 'bigfile_link'
Size: 5368709120 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 12849444 Links: 2
Access: (0600/-rw-------) Uid: ( 1000/ mhr) Gid: ( 1000/ mhr)
Access: 2020-05-04 09:07:52.395872798 -0700
Modify: 2020-05-04 09:04:27.883813275 -0700
Change: 2020-05-05 01:46:59.918698615 -0700
Birth: -
mhr@ubuntu:~/work/linux/wenjianxitong/20$
シンボリックリンク:シンボリックリンクの利点は、パーティションにまたがることができ、ディレクトリ用に作成できることです。
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$ ln -s bigfile_link bigfile_s
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$ stat bigfile_link
File: 'bigfile_link'
Size: 5368709120 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 12849444 Links: 2
Access: (0600/-rw-------) Uid: ( 1000/ mhr) Gid: ( 1000/ mhr)
Access: 2020-05-04 09:07:52.395872798 -0700
Modify: 2020-05-04 09:04:27.883813275 -0700
Change: 2020-05-05 01:46:59.918698615 -0700
Birth: -
mhr@ubuntu:~/work/linux/wenjianxitong/20$
mhr@ubuntu:~/work/linux/wenjianxitong/20$ stat bigfile_s
File: 'bigfile_s' -> 'bigfile_link'
Size: 12 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 12847417 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ mhr) Gid: ( 1000/ mhr)
Access: 2020-05-05 01:58:18.333394043 -0700
Modify: 2020-05-05 01:58:18.201401500 -0700
Change: 2020-05-05 01:58:18.201401500 -0700
Birth: -
mhr@ubuntu:~/work/linux/wenjianxitong/20$
シンボリックリンクファイルのサイズ:12は、「bigfile_link」名のサイズであり、占有ディスク容量は0
です。シンボリックリンクファイルが指すファイルを削除すると、ソースファイルが無効になり、シンボリックリンクが無効になります。ファイルを再度使用すると、エラーが発生します。
リンク
コマンドlnは、システムコールlink()によってカプセル化されます。
NAME
link、linkat-ファイルの新しい名前を作成します
概要
#include <unistd.h>
int link(const char *oldpath, const char *newpath);
utime:
NAMEの
UTIME、utimes -最終更新ファイルアクセスと変更タイムズ
ファイルを変更最後の読み取りおよび最終更新時間だった
書式
の#include <SYS / types.h>に
する#include <utime.h>
int utime(const char *filename, const struct utimbuf *times);
カタログの作成と破棄
名前
mkdir、mkdirat-ディレクトリを作成します
概要
#include <sys / stat.h>
#include <sys / types.h>
int mkdir(const char *pathname, mode_t mode);
名前
のrmdir -ディレクトリを削除します
概要
#include <unistd.h>
int rmdir(const char *pathname);
説明
rmdir()は、空である必要があるディレクトリを削除します。削除できるのは空のディレクトリのみです。
現在の作業パスを変更します:cd
名前
chdir、fchdir-作業ディレクトリを変更します
概要
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fd);
現在の作業パスを取得します:pwd
NAME
getcwd、getwd、get_current_dir_name-現在の作業ディレクトリ
を取得して、現在の作業ディレクトリを取得します
概要
#include <unistd.h>
char *getcwd(char *buf, size_t size);