在bash中获取目录

时间:2014-10-03 12:21:04

标签: python bash

我有一个包含许多文件夹的文件夹,在这些文件夹中有更多文件夹等等。 在这棵树的某个地方有文件(文本文件)。其中一个文件包含“找到我”。我需要找到该文件的路径。在bash和python中(每种语言一个代码)。

当然我不希望你为我解决这个挑战所以我有一些问题(所有问题都是关于这两种语言):

  1. 如何查看某个目录中的所有文件和目录?
  2. 如果我有文件/目录路径,如何判断此路径是针对文件还是针对目录?
  3. (仅限bash)如何阅读文件内容并检查其是否包含“找到我”?

2 个答案:

答案 0 :(得分:2)

随意尝试grep:

grep -r "find me" .

grep -r "find me" /path/to/your/folder

答案 1 :(得分:0)

我认为这个函数将解决你的问题1和2的Python。 (我不知道bash。)它将为您提供所有目录和文件的完整列表,以及两者的组合的完整路径。您可以尝试并根据自己的喜好进行修改。然后你需要阅读你找到的所有文件并寻找“找到我”。

import os

def find_paths(path):
    dir_names = []
    file_names = []
    path_names = []
    for dirname, dirnames, filenames in os.walk(path):
        for filename in filenames:
            # Combine dirname and filename into absolute path:
            filepath = os.path.join(dirname, filename)
            # Add info to lists:
            dir_names.append(dirname)
            file_names.append(filename)
            path_names.append(filepath)
    return dir_names, file_names, path_names

print find_paths(".") # Finds all dirs, files and paths in current folder.