筆者手上事兒比較多,經常要記錄接下來要做的事情防止忘記。在macos上,我並沒有發現很好的任務/to-dos管理軟體。之前一直在用macos自帶的便箋,放到桌面上;但是這樣很不優雅和美觀,遮擋桌面不說,給任務分組、更改任務分組也很麻煩(剪貼貼上)。某天晚上突然想到這不就是檔案目錄嗎?資料夾是分組,裡面的檔案是任務。突然就想起來訪達和tree命令,這不就是天然的任務管理嗎?但是簡單嘗試後發現,tree命令對中文、空格的支援很不好,顯示的格式有點差。於是想著去找找別的tree命令。github上一搜發現個人實現的tree命令很多。在kddeisz/tree這個專案中,作者用多種語言實現了tree命令。我嘗試了shell版和c版,覺得還是python版好用。
以下是我的使用方法:
cd
[dir_git]
git clone
cd tree
mv tree.py [dir_task]/.tree.py
echo
"alias task='cd [dir_task] && [dir_task]/.tree.py'"
>>
[file_runcom]
其中:
[dir_git]
-> clone github專案時的目錄:/users/yangxijie/yxj/code/git
[dir_task]
-> 存放任務的根目錄:/users/yangxijie/desktop/task
[file_runcom]
-> shell啟動時讀取的配置檔案:~/.zshrc
切換到根目錄並顯示所有任務:task
新建分組:mkdir [group]
新建任務:touch [group]/[task]
(其中[task]
為任務內容,推薦不帶字尾名;推薦使用英語,因為shell按⇥可以自動補全,用中文就意味著需要切換輸入法不夠效率)
新增備註:可以echo [comment] >> [group]/[task]
、檢視使用cat [group]/[task]
(但是這樣你不知道哪個任務有注釋,可以考慮在[task]
中新增資訊來說明此任務有備註。但是我更推薦將備註直接寫到檔名[task]
裡)
顯示分組內的任務:task [group]
更改任務:mv [group]/[task] [group][task_new]
移動任務:mv [group]/[task] [group_new]
刪除任務:rm [group]/[task]
刪除分組:目錄中無任務:rmdir [group]
;刪除目錄及目錄下的任務:rm -rf [group]
切換到根目錄檢視任務:雙擊開啟
新建分組:新建資料夾
新建任務:複製已經有的任務進行重新命名(因為訪達不能直接新建檔案)
新增備註:推薦將備註直接寫到檔名[task]
裡
更改任務:重新命名
移動任務:拖移檔案
刪除任務:⌘ ⌫
刪除分組:⌘ ⌫
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
class
tree
:def
__init__
(self)
: self.dircount =
0 self.filecount =
0def
register
(self, absolute)
:if os.path.isdir(absolute)
: self.dircount +=
1else
: self.filecount +=
1def
summary
(self)
:return
str(self.dircount)
+" directories, "
+str
(self.filecount)
+" files"
defwalk
(self, directory, prefix ="")
: filepaths =
sorted
([filepath for filepath in os.listdir(directory)])
for index in
range
(len
(filepaths)):
if filepaths[index][0
]==".":
continue
absolute = os.path.join(directory, filepaths[index]
) self.register(absolute)
if index ==
len(filepaths)-1
:print
(prefix +
"└── "
+ filepaths[index]
)if os.path.isdir(absolute)
: self.walk(absolute, prefix +
" "
)else
:print
(prefix +
"├── "
+ filepaths[index]
)if os.path.isdir(absolute)
: self.walk(absolute, prefix +
"│ "
)directory =
"."if
len(sys.ar**)
>1:
directory = sys.ar**[1]
print
(directory)
tree = tree(
)tree.walk(directory)
print
("\n"
+ tree.summary(
))
MacOS如何使用 tree 生成目錄結構
homebrew官網 homebrew介紹和使用 根據官網的方法安裝 usr bin ruby e curl fssl 比如我的 this script will install usr local bin brew usr local share doc homebrew usr local sh...
tree命令的使用
tree 選項 i 範本樣式 p 範本樣式 目錄 a 顯示所有檔案和目錄。a 使用asni繪圖字元顯示樹狀圖而非以ascii字元組合。c 在檔案和目錄清單加上色彩,便於區分各種型別。d 顯示目錄名稱而非內容。d 列出檔案或目錄的更改時間。f 在每個檔案或目錄之前,顯示完整的相對路徑名稱。f 在執行檔...
tree命令的使用
有些工作在linux下完成就是比在windows下完成高效!windows和linux都有tree命令,主要功能是建立檔案列表,將所有檔案以樹的形式列出來 windows下的tree比較垃圾,只有兩個引數,f 是遞迴顯示每個資料夾的名稱 a 是使用ascii字元而不是擴充套件字元,感覺還不如不加 a...