diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index b40750083cfa83fd605a3c4f07b2e16dea088596..36d7beb348613c8519a09026335619b21cd7c6e8 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -57,9 +57,7 @@ (define (for-each-search-path proc inputs derivations pure?)
                         (if (and current (not pure?))
                             (string-append value separator current)
                             value)))))
-              (cons* (search-path-specification
-                      (variable "PATH")
-                      (files '("bin" "sbin")))
+              (cons* $PATH
                      (delete-duplicates
                       (append-map package-native-search-paths inputs))))))
 
diff --git a/guix/search-paths.scm b/guix/search-paths.scm
index 9dfad8916908ea63031116270a282d9140472100..89af1e1492a30060c52ab622b688cbda49274fa3 100644
--- a/guix/search-paths.scm
+++ b/guix/search-paths.scm
@@ -31,6 +31,8 @@ (define-module (guix search-paths)
             search-path-specification-file-type
             search-path-specification-file-pattern
 
+            $PATH
+
             search-path-specification->sexp
             sexp->search-path-specification
             evaluate-search-paths
@@ -58,6 +60,13 @@ (define-record-type* <search-path-specification>
   (file-pattern search-path-specification-file-pattern ;#f | string
                 (default #f)))
 
+(define $PATH
+  ;; The 'PATH' variable.  This variable is a bit special: it is not attached
+  ;; to any package in particular.
+  (search-path-specification
+   (variable "PATH")
+   (files '("bin" "sbin"))))
+
 (define (search-path-specification->sexp spec)
   "Return an sexp representing SPEC, a <search-path-specification>.  The sexp
 corresponds to the arguments expected by `set-path-environment-variable'."