精簡linux的檔案路徑:
..回退的功能
.留在當前目錄
//只保留乙個/
abc/..要返回.
報錯刪除最後乙個/
主要思路: string.split,注意開始是/或者../或者./等三種不同情況。用棧記錄路徑的起始位置,討論/後的不同情況即可:
class solution:
def linux_path_compress(self, path):
is_root = path.startswith('/')
folders = path.split('/')
f =
for folder in folders:
if (folder == '..'):
if (not f and is_root):
return false, ''
elif ((not f and not is_root) or (f and f[-1] == '..')):
elif (f):
f.pop()
elif (folder and folder != '.'):
mid = '/'.join(f) + '/'
prefix = '/' if is_root else './'
if (f and f[0] == '..'):
prefix = ''
return true, prefix + mid
s = solution()
a = "/.abc/***./abc/bacd/.././bcd/fsgs/../../../x/y/z/../../../../.././././xda"
b = "asdf/.abc/***./abc/bacd/.././bcd/fsgs/../../../x/y/z/../../../../../../.././../.././././"
c = "/xyz/./bcd/fsgs/../../../x/y/z/../../../.."
d = "../../../etc/xyz/../abc/.asdf/../../../../"
print(s.linux_path_compress(a)) #(true, '/xda/')
print(s.linux_path_compress(b)) #(true, '../../../')
print(s.linux_path_compress(c)) #(false, '')
print(s.linux_path_compress(d)) #(true, '../../../../')
Linux 檢視檔案 精簡
catcat n 檢視所有的行加上行號 cat b 只給有文字的行加上行號 cat t 不出現製表符 more more命令會顯示文字檔案的內容,但會在顯示每頁資料之後停下來.q退出 more命令顯示了乙個標籤,其表明你仍然在more程式中以及你現 在在這個文字檔案中的位置。這是more命令的提示符...
Linux精簡指南
編譯過程如下 make menuconfig 對核心進行配置,執行該命令的時候,要求所開的終端寬度要足夠顯示80個字元,以顯示整個配置的圖形介面,否則會出現錯誤。進入配置介面之後,在device driver block devices裡面選擇 ram disk support initial ra...
Linux檢視檔案路徑
linux下有兩個命令可以檢視命令或者檔案所在的位置 1.which which 用來檢視當前要執行的命令所在的路徑 舉個例子 root admin which python usr bin python 意思就是說 如果我直接輸入 python 那麼輸出的就是 python 命令的預設執行路徑 即...