刪除各種檔案
參考 :
範例 : azzi000 648116.tmp
step 1 :
find . -name '* *'
step 2 :
find . -name '* *' | awk -F / '{print "\""$2"\""}'
step 3 :
find . -name '* *' | awk -F / '{print "\""$2"\""}' | xargs rm -f
參考 :
可以用 lsof 檢查已清理 程序卻卡住 process
lsof | grep deleted
平時刪除檔案可以用 rm
也可以用到 unlink
Linux 檔案關聯簡介
可如檔案還在被程序使用
delete 後會進入到 背景
查看方式可以用
find /proc/*/fd -ls | grep deleted
lsof | grep deleted
要回收空間 ( 暫時 )
: > /proc/process id/fd/號碼
永久需用到
關閉 stderr
exec 2>&-
gdb 方式 參考
找到要重新導向 pid
文章介紹 :
假設要重定向 PID 為 14560 的進程的輸出。因此,應該首先將 gdb 附加到該 PID:
gdb -p 14560
一旦我們附加到進程,可以將文件描述符 1 重定向到 /tmp/process_stdout:
(gdb) p dup2(open("/tmp/process_stdout", 1089, 0777), 1)
請注意,使用了數字 1089,因為它代表 O_WRONY | O_CREAT | O_APPEND。
也可以通過使用 2 作為文件描述符以完全相同的方式重定向標準錯誤:
(gdb) p dup2(open("/tmp/process_stderr", 1089, 0777), 2)
此時,輸出已被重定向。但是,該進程已停止並且 gdb 已附加到該進程。
把通道 1 導向 /dev/null
(gdb) p dup2(open("/dev/null"), 1)
退出 gdb
(gdb) q
上述指令撰寫執行檔
p dup2(open("/tmp/process_stdout", 1089, 0777), 1)
p dup2(open("/tmp/process_stderr", 1089, 0777), 2)
q
例如執行檔名為 test
gdb -p process id -x test
gdb 內核出現異常
'open64' has unknown return type; cast the call to its declared return type
參考 :
可改用
(gdb) p (int)dup2((int)open("/tmp/my_stdout", 1089, 0777), 1)
安裝
make;make install
用法 : 找出所有撰寫 檔案 pid
把 pid 通道 2 給 /dev/null
reredirect -e /dev/null pid