我的一台客户端服务器的磁盘空间不足时遇到问题。
的命令的输出ls -lah在/var/lib/mysql所示:
drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
Run Code Online (Sandbox Code Playgroud)
但是当我使用命令检查同一目录中的文件大小时du -sh *,输出显示:
22G database_xyz
Run Code Online (Sandbox Code Playgroud)
为什么这些命令的输出显示两个完全不同的结果?
我的驱动器上只剩下 2.2GB。
root@jon-cust-lifeincity:/var/lib/mysql# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg-root 49G 44G 2.2G 96% /
tmpfs 1007M 0 1007M 0% /lib/init/rw
udev 1002M 108K 1002M 1% /dev
tmpfs 1007M 0 1007M 0% /dev/shm
/dev/sda1 228M 16M 200M 8% /boot
Run Code Online (Sandbox Code Playgroud)
编辑:
原来那database_xyz实际上是一个目录,而不是一个文件。所以混乱是由我的大脑弥补的。
当我使用 ssh 登录远程机器时,我遇到了一个非常奇怪的问题。这是场景:
ls(它有效)ls -a(它有效)ls -l(它有效)ls -al .bash_profile(它有效)ls -al(它在列出 2 个目录后失败......第三个目录本来是 .bash_profile)当我使用本地网络中另一台机器的 ssh 登录这台机器时,一切正常。
有人可以帮我调试这个问题。
更新 1:
正如丹建议的那样,我尝试使用尺寸。然而只是为了消除ls我尝试做的 任何问题
$ls -al >> ls_op.txt (this worked)
Run Code Online (Sandbox Code Playgroud)
然后我做了
$ls >> ls.txt
Run Code Online (Sandbox Code Playgroud)
直到 ls.txt 的大小为 1020 字节,然后执行
$cat lx.txt(这也有效)
我再次执行 'ls >> ls.txt' 使文件大小超过 1024。文件大小现在为 1360 字节。现在做
$cat ls.txt(失败)
所以肯定有一些与数据包大小相关的问题。这里有更多信息。有 2 个物理位置,比方说 A 和 B。
当我在 A 中的一台机器上并登录到 B 中的一台机器时,我能够处理cat …
假设我正在提取一个大文件或慢慢建立一个大文件。有没有办法ls -lh像 一样“打开” tail -f,以便我可以不断看到文件的大小增长,直到我决定终止它?
我想做ls | grep something和cd列出的一件事。我尝试|和搜索,但没有找到。它在使用xargs吗?
我想做这样的事情
du -a | sort -rn | head
Run Code Online (Sandbox Code Playgroud)
但我只想提取文件,忽略目录。
明确地说,我想遍历所有子目录,但我不想找到目录大小。只是文件大小。
更新
我也想返回文件的完整路径
为什么屏幕截图中显示的文件大小存在差异,即 ls -lh 下的总文件大小为 44k,而文件夹的大小仅为 4k?我读错了吗?
我登录sftp:
sftp user@server
Run Code Online (Sandbox Code Playgroud)
然后我运行:
ls -lt
Run Code Online (Sandbox Code Playgroud)
我希望文件按日期排序。
sftp> ls -lt *.csv
-rw------- 0 76547986 200 5073032 Mar 14 08:42 file1.csv
-rw------- 0 76547986 200 5073032 Mar 15 08:41 file2.csv
-rw------- 0 76547986 200 5073032 Mar 16 08:41 file3.csv
-rw------- 0 76547986 200 5072802 Mar 17 08:42 file4.csv
-rw------- 0 76547986 200 1117736 Sep 30 14:44 file5.csv
-rw------- 0 76547986 200 1120419 Oct 2 08:45 file6.csv
-rw------- 0 76547986 200 1119763 Oct 1 08:43 file7.csv
-rw------- 0 76547986 200 5073258 Mar …Run Code Online (Sandbox Code Playgroud) 例如,我想在我的 linux 中编辑一些文件
ls -ltr /etc/some_file
-rw-r--r-- 1 root root 188 Jul 1 2010 sysstat
Run Code Online (Sandbox Code Playgroud)
.
echo "Server101_IP=187.0.98.4" >> /etc/some_file
Run Code Online (Sandbox Code Playgroud)
.
我希望得到以下日期:
ls -ltr /etc/some_file
-rw-r--r-- 1 root root 188 Jul 1 2010 sysstat
Run Code Online (Sandbox Code Playgroud)
但是这个文件的日期和时间不能改变!
我只想编辑文件,但我想知道如何更改文件而不影响文件的日期和时间 - 可能吗?