我有一个关于shell的练习,需要使用权限。我需要复制一个存储库,当使用ls-l:时,文件应该是这样的
dr-x---r-- 2 XX XX XX Jun 1 22:45 test0
-rwx--xr-- 1 XX XX 4 Jun 1 22:56 test1
-r-----r-- 2 XX XX 1 Jun 1 22:45 test2
所以我可以用一些方式复制它(使用基本命令,如mkdir test0 chmod 504 test0/chmod ugo-rwx(,但它看起来总是像这个
dr-x---r--@ 2 XX XX 64 Jun 1 22:45 test0
-rwx--xr-- 1 XX XX 0 Jun 1 22:54 test1
-r-----r-- 1 XX XX 5 Jun 1 22:45 test2
正如你所看到的,在测试0中,我有一个"@"我找不到它代表什么,也找不到如何删除它。然后,一旦我创建了另一个文件或目录,test0就会自动更改,看起来像这样:
drwxr-xr-@ 2 XX XX 64 Jun 1 22:45 test0
对于test1,我不知道如何使我的文件大小为"0";4〃;而不是";0";
对于test2,我不知道它怎么不是一个目录,仍然有2个链接的硬链接,而且它的大小是1。
提前感谢!
@是一个Mac操作系统约定,意味着该目录是用扩展权限设置的。更多信息可以在这里找到:
http://scottlab.ucsc.edu/xtal/wiki/index.php/Extended_Attributes
关于文件的大小,您可以创建文件并使用dd和so指定其大小:
dd if=/dev/zero of=test1 bs=4c count=1
dd if=/dev/zero of=test2 bs=5c count=1
dd手册页中的详细信息:
dd - convert and copy a file
bs=BYTES
read and write up to BYTES bytes at a time
count=N
copy only N input blocks
N and BYTES may be followed by the following multiplicative suffixes: c
=1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.