macOS 使用tree命令和訪達進行任務管理

2021-10-10 05:38:28 字數 3354 閱讀 7690

筆者手上事兒比較多,經常要記錄接下來要做的事情防止忘記。在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...