shell - 基本的贝壳练习
问题描述
我有一个关于 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
如您所见,在 test0 中我有一个“@”,但我找不到它代表什么,也找不到如何删除它。然后,一旦我创建另一个文件或目录,test0 将自动更改并如下所示:
drwxr-xr-@ 2 XX XX 64 Jun 1 22:45 test0
对于 test1,我不知道如何使我的文件大小为“4”而不是“0”
对于 test2,我不知道它为什么不是目录,并且仍然有 2 个链接的硬链接,它的大小是 1。
提前致谢 !
解决方案
@ 是 Mac OS 的约定,表示该目录已设置有扩展权限。更多信息可以在这里找到:
http://scottlab.ucsc.edu/xtal/wiki/index.php/Extended_Attributes
关于文件的大小,您可以创建文件并使用 dd 指定它们的大小,因此:
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.
推荐阅读
- mysql - 导入大 sql 文件时如何计算 mysql 的最大性能?
- c# - 我已经尝试重新安装 ms office 并安装了 office 工具运行时。将数据导出到 Excel 文件时仍然出现此错误
- selenium - 在 Selenium 中添加鼠标操作
- android - 无法获取设备的 UUID
- sql - 我将如何创建一个查询,为我提供相同购买的客户的姓名
- javascript - dropzonejs 预览容器
- r - 如何从 R 中运行多命令 Linux shell 脚本?
- unit-testing - 在 Go 语言中一个接一个地多次模拟具有不同响应的相同功能
- sorting - Cakephp 3 sortBy DESC 两个都出问题了
- google-identity - SmartLock disableAutoSignIn() 停止工作返回 403