小编23t*_*tux的帖子

不同目录的 Bash 自动完成

我已经玩了一段时间的 bash 自动完成功能,但找不到解决我的问题的方法。我有一个包含如下子文件夹的项目目录:

  • 项目/红宝石/项目1
  • 项目/红宝石/项目2
  • 项目/轨道/项目3
  • 项目/html/project4

现在,我想有一个命令,把它cdproject在那里我可以cd在我的项目目录及子目录内的任何子文件夹。这个命令应该提供一个自动完成功能,我可以在其中输入cdproject pr --> TAB TAB,然后获取一个列表,例如ruby/project1, ruby/project2, rails/project3...

我的问题是如何处理子目录。程序cdproject看起来像这样

#!/bin/bash
cd $1
Run Code Online (Sandbox Code Playgroud)

cdproject-autocompletion.bash这个样子的

_cdproject()
{
  local cur prev opts
  COMPREPLY=()
  cur="${COMP_WORDS[COMP_CWORD]}"
  prev="${COMP_WORDS[COMP_CWORD-1]}"
  opts=$(ls ~/Dropbox/projects)
  COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
  return 0
}
complete -o default -o nospace -F _o  o
Run Code Online (Sandbox Code Playgroud)

而我的里面.bash_profile,我的来源cdproject-autocompletion.bash

source ~/cdproject-autocompletion.bash

所以任何人的想法,如何实现这一目标?也许opts应该返回 subdir 结构,ruby/project1但是自动完成应该只对最后一部分起作用,即实际的项目名称。我不知道这怎么可能。

linux script bash autocomplete macos

7
推荐指数
1
解决办法
3617
查看次数

Dropbox 更改文件权限

我正在使用 Dropbox 在我的 MacBook 和 iMac 之间同步文件。我的问题是,Dropbox 在同步期间将文件权限从 0755 更改为 0644,反之亦然。我想知道为什么。

我还使用 Dropbox 来同步一些 git 存储库,这很烦人,因为 git 总是说,文件权限已更改。

所以我的问题是:有没有办法阻止 Dropbox 同步文件权限?还是有其他想法?

mac dropbox macos

5
推荐指数
1
解决办法
1195
查看次数

标签 统计

macos ×2

autocomplete ×1

bash ×1

dropbox ×1

linux ×1

mac ×1

script ×1